{"id":1759,"date":"2026-02-27T16:12:55","date_gmt":"2026-02-27T16:12:55","guid":{"rendered":"https:\/\/home.hamptonu.edu\/oar\/?page_id=1759"},"modified":"2026-03-03T18:29:01","modified_gmt":"2026-03-03T18:29:01","slug":"landing-page-new-2-27-26","status":"publish","type":"page","link":"https:\/\/home.hamptonu.edu\/oar\/","title":{"rendered":"Landing Page &#8211; New 2\/27\/26"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1759\" class=\"elementor elementor-1759\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d758996 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d758996\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c296662\" data-id=\"c296662\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fff0914 elementor-widget elementor-widget-spacer\" data-id=\"fff0914\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7ce040d elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"7ce040d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-7896d96\" data-id=\"7896d96\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8c44bd5 elementor-widget elementor-widget-html\" data-id=\"8c44bd5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"oar-wow oar-wow--combo\">\n  <canvas id=\"oarComboCanvas\" class=\"oar-wow__canvas\" aria-hidden=\"true\"><\/canvas>\n\n  <div class=\"oar-wow__content\">\n    <div class=\"oar-wow__glass\">\n      <div class=\"oar-wow__eyebrow\">HAMPTON UNIVERSITY \u2022 OPERATIONS ANALYSIS &amp; RESEARCH<\/div>\n      <h1 class=\"oar-wow__title\">Institutional Data &amp; Insights<\/h1>\n      <p class=\"oar-wow__sub\">\n        Dashboards, reporting, and analysis supporting strategic planning, institutional effectiveness, and student success.\n      <\/p>\n\n      <div class=\"oar-wow__actions\">\n        <a class=\"oar-wow__btn oar-wow__btn--primary\" href=\"\/oar\/dashboard\/\">View Dashboards \u2192<\/a>\n        <a class=\"oar-wow__btn oar-wow__btn--ghost\" href=\"#request-data\">Request Data \u2192<\/a>\n      <\/div>\n\n      <div class=\"oar-wow__meta\">Data as of: <strong>Fall 2025 Census<\/strong><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n  :root{\n    --oar-primary:#004AAD;\n    --oar-accent:#02275A;\n    --oar-gray:#BEBFC3;\n    --oar-text:#353A3C;\n    --oar-white:#FFFFFF;\n  }\n\n  .oar-wow{\n    position: relative;\n    width: 100%;\n    min-height: 560px;\n    border-radius: 26px;\n    overflow: hidden;\n    border: 1px solid rgba(0,74,173,.14);\n    background:\n  radial-gradient(1000px 500px at 15% -10%, rgba(0,74,173,.18), transparent 60%),\n  radial-gradient(800px 400px at 95% 15%, rgba(2,39,90,.16), transparent 60%),\n  linear-gradient(180deg, #EAF2FF 0%, #F5F8FF 55%, #FFFFFF 100%);\n  }\n\n  .oar-wow__canvas{\n    position:absolute;\n    inset:0;\n    width:100%;\n    height:100%;\n    display:block;\n  }\n\n  .oar-wow__content{\n    position: relative;\n    z-index: 2;\n    max-width: 1140px;\n    margin: 0 auto;\n    padding: 78px 22px 68px;\n  }\n\/* Right align the hero card *\/\n.oar-wow__content{\n  display: flex;\n  justify-content: flex-end;\n}\n\n.oar-wow__glass{\n  margin-left: auto;\n}\n  \/* slightly more transparent + stronger blur *\/\n  .oar-wow__glass{\n    max-width: 780px;\n    padding: 26px 22px;\n    border-radius: 22px;\n    background: rgba(255,255,255,.38);\n    border: 1px solid rgba(190,191,195,.65);\n    box-shadow: 0 18px 46px rgba(2,39,90,.10);\n    backdrop-filter: blur(14px);\n    -webkit-backdrop-filter: blur(14px);\n  }\n\n  .oar-wow__eyebrow{\n    font-size: 12px;\n    letter-spacing: .18em;\n    text-transform: uppercase;\n    color: rgba(2,39,90,.88);\n    margin-bottom: 10px;\n  }\n\n  .oar-wow__title{\n    margin: 0 0 10px;\n    font-size: 46px;\n    line-height: 1.06;\n    font-weight: 900;\n    color: var(--oar-accent);\n  }\n\n  .oar-wow__sub{\n    margin: 0 0 18px;\n    color: var(--oar-text);\n    line-height: 1.7;\n    font-size: 16px;\n  }\n\n  .oar-wow__actions{\n    display:flex;\n    gap:12px;\n    flex-wrap:wrap;\n    margin-bottom: 12px;\n  }\n\n  .oar-wow__btn{\n    text-decoration:none !important;\n    font-weight: 800;\n    border-radius: 999px;\n    padding: 12px 16px;\n    display:inline-flex;\n    align-items:center;\n    gap:8px;\n    transition: transform .12s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;\n  }\n\n\n.oar-wow__btn--primary{\n  background: linear-gradient(135deg, #004AAD 0%, #02275A 100%);\n  color: #FFFFFF !important;\n  box-shadow: 0 8px 20px rgba(0,74,173,.25);\n  transition: all .25s cubic-bezier(.4,0,.2,1);\n}\n\n.oar-wow__btn--primary:hover{\n  color: #FFFFFF !important;   \/* THIS FIXES THE BLACK TEXT *\/\n  transform: translateY(-3px);\n  box-shadow: 0 18px 38px rgba(0,74,173,.35);\n}\n\n.oar-wow__btn--primary:active{\n  color: #FFFFFF !important;\n  transform: translateY(-1px);\n  box-shadow: 0 10px 22px rgba(0,74,173,.28);\n}\n\n  .oar-wow__btn--ghost{\n    background: rgba(255,255,255,.62);\n    color: var(--oar-accent);\n    border: 1px solid rgba(190,191,195,.85);\n  }\n  .oar-wow__btn--ghost:hover{\n    transform: translateY(-2px);\n    border-color: rgba(0,74,173,.45);\n    box-shadow: 0 12px 26px rgba(0,0,0,.08);\n  }\n\n  .oar-wow__meta{\n    font-size: 13px;\n    color: rgba(53,58,60,.88);\n  }\n\n  .oar-wow:after{\n    content:\"\";\n    position:absolute;\n    left:0; right:0; bottom:0;\n    height: 130px;\n    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));\n    pointer-events:none;\n    z-index: 1;\n  }\n  .oar-wow{\n  background: transparent !important;\n  border: 0 !important;\n}\n.oar-wow:after{ display:none !important; } \/* removes the white fade that creates a cut *\/\n\n  @media (max-width: 900px){\n    .oar-wow{ min-height: 560px; border-radius: 18px; }\n    .oar-wow__title{ font-size: 34px; }\n    .oar-wow__content{ padding: 56px 18px 54px; }\n    .oar-wow__glass{ padding: 20px 16px; }\n  }\n<\/style>\n\n<script>\n(() => {\n  const canvas = document.getElementById(\"oarComboCanvas\");\n  if (!canvas) return;\n  const ctx = canvas.getContext(\"2d\", { alpha: true });\n  if (!ctx) return;\n\n  const reduceMotion =\n    window.matchMedia &&\n    window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  function resize(){\n    const dpr = Math.min(window.devicePixelRatio || 1, 2);\n    const rect = canvas.getBoundingClientRect();\n    if (!rect.width || !rect.height) {\n      requestAnimationFrame(resize);\n      return;\n    }\n    canvas.width = Math.floor(rect.width * dpr);\n    canvas.height = Math.floor(rect.height * dpr);\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n  }\n\n  \/\/ Mouse\n  let mouse = { x: -9999, y: -9999 };\n  canvas.addEventListener(\"mousemove\", (e) => {\n    const r = canvas.getBoundingClientRect();\n    mouse.x = e.clientX - r.left;\n    mouse.y = e.clientY - r.top;\n  });\n  canvas.addEventListener(\"mouseleave\", () => {\n    mouse.x = -9999;\n    mouse.y = -9999;\n  });\n\n  const rand = (min, max) => Math.random() * (max - min) + min;\n\n  \/\/ Network particles across the FULL hero (no globe)\n  const PCOUNT = 90;\n  const particles = [];\n\n  function init(){\n    particles.length = 0;\n    const r = canvas.getBoundingClientRect();\n\n    for (let i = 0; i < PCOUNT; i++){\n      particles.push({\n        x: rand(0, r.width),\n        y: rand(0, r.height),\n        vx: rand(-0.20, 0.20),\n        vy: rand(-0.14, 0.14),\n        rad: rand(1.1, 2.1)\n      });\n    }\n  }\n\n  function step(){\n    const r = canvas.getBoundingClientRect();\n    if (!r.width || !r.height) {\n      requestAnimationFrame(step);\n      return;\n    }\n\n    ctx.clearRect(0, 0, r.width, r.height);\n\n    \/\/ Update\n    for (const p of particles){\n      if (!reduceMotion){\n        p.x += p.vx;\n        p.y += p.vy;\n      }\n      if (p.x < -10) p.x = r.width + 10;\n      if (p.x > r.width + 10) p.x = -10;\n      if (p.y < -10) p.y = r.height + 10;\n      if (p.y > r.height + 10) p.y = -10;\n    }\n\n    \/\/ Lines\n    const maxDist = 135;\n    for (let i = 0; i < particles.length; i++){\n      for (let j = i + 1; j < particles.length; j++){\n        const a = particles[i], b = particles[j];\n        const dx = a.x - b.x, dy = a.y - b.y;\n        const d = Math.sqrt(dx*dx + dy*dy);\n\n        if (d < maxDist){\n          const alpha = (1 - d \/ maxDist) * 0.85;\n          ctx.strokeStyle = `rgba(2,39,90,${0.16 * alpha})`;\n          ctx.lineWidth = 1;\n          ctx.beginPath();\n          ctx.moveTo(a.x, a.y);\n          ctx.lineTo(b.x, b.y);\n          ctx.stroke();\n        }\n      }\n    }\n\n    \/\/ Dots\n    for (const p of particles){\n      const dx = p.x - mouse.x, dy = p.y - mouse.y;\n      const d = Math.sqrt(dx*dx + dy*dy);\n      const glow = d < 140 ? (1 - d\/140) : 0;\n\n      ctx.fillStyle = glow > 0\n        ? `rgba(0,74,173,${0.22 + glow * 0.40})`\n        : \"rgba(0,74,173,.22)\";\n\n      ctx.beginPath();\n      ctx.arc(p.x, p.y, p.rad + glow * 1.6, 0, Math.PI * 2);\n      ctx.fill();\n    }\n\n    requestAnimationFrame(step);\n  }\n\n  resize();\n  init();\n  window.addEventListener(\"resize\", () => { resize(); init(); });\n  requestAnimationFrame(() => { resize(); init(); });\n\n  step();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-39b6a95\" data-id=\"39b6a95\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9c0732a elementor-widget elementor-widget-html\" data-id=\"9c0732a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- OAR Student Population Globe (COBE via CDN, no React) -->\n<div class=\"oar-globe-wrap\" aria-label=\"Student population map globe\">\n  <canvas id=\"oarStudentGlobe\" class=\"oar-globe-canvas\"><\/canvas>\n\n  <div class=\"oar-globe-caption\">\n    <div class=\"oar-globe-pill\">Student Population Map<\/div>\n    <div class=\"oar-globe-hint\">Hover to pause \u2022 Drag to rotate<\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .oar-globe-wrap{\n    position: relative;\n    width: 100%;\n    max-width: 520px;\n    aspect-ratio: 1 \/ 1;\n    margin-left: auto;\n    border-radius: 999px;\n    overflow: hidden;\n    background: transparent;\n  }\n\n  .oar-globe-canvas{\n    width: 100%;\n    height: 100%;\n    display: block;\n    opacity: 1;\n  }\n\n  \/* Caption goes BELOW the globe *\/\n  .oar-globe-caption{\n    position: absolute;\n    left: 50%;\n    bottom: 10px;\n    transform: translateX(-50%);\n    text-align: center;\n    z-index: 3;\n    width: min(92%, 320px);\n    pointer-events: none;\n  }\n\n  .oar-globe-pill{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 8px 12px;\n    border-radius: 999px;\n    background: rgba(255,255,255,.75);\n    border: 1px solid rgba(0,74,173,.18);\n    color: #02275A;\n    font-weight: 800;\n    font-size: 12px;\n    backdrop-filter: blur(10px);\n    -webkit-backdrop-filter: blur(10px);\n  }\n\n  .oar-globe-hint{\n    margin-top: 6px;\n    font-size: 12px;\n    color: rgba(53,58,60,.72);\n  }\n\n  @media (max-width: 900px){\n    .oar-globe-wrap{ max-width: 360px; margin: 18px auto 0; }\n    .oar-globe-caption{ bottom: 8px; }\n  }\n<\/style>\n\n<!-- Cobe UMD build -->\n<script src=\"https:\/\/unpkg.com\/cobe@0.6.2\/dist\/index.umd.js\"><\/script>\n\n<script>\n(function () {\n  const canvas = document.getElementById(\"oarStudentGlobe\");\n  if (!canvas) return;\n\n  \/\/ If Elementor re-renders, avoid double init\n  if (canvas.dataset.oarInit === \"1\") return;\n  canvas.dataset.oarInit = \"1\";\n\n  const reduceMotion =\n    window.matchMedia &&\n    window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  const countries = [\n    \"ARUBA\",\"BAHAMAS\",\"BARBADOS\",\"BERMUDA\",\"BRAZIL\",\"BURMA\",\"CAMEROON\",\"CANADA\",\"CHINA\",\n    \"EGYPT\",\"FRANCE\",\"GERMANY\",\"GHANA\",\"GREECE\",\"GUYANA\",\"HONDURAS\",\"HONG KONG\",\"INDIA\",\n    \"IRELAND\",\"JAMAICA\",\"JAPAN\",\"KENYA\",\"KUWAIT\",\"MONACO\",\"POLAND\",\"RUSSIA\",\"SERBIA\",\n    \"SPAIN\",\"SRI LANKA\",\"SWITZERLAND\",\"TURKEY\",\"UNITED KINGDOM\",\"ZIMBABWE\"\n  ];\n\n  const states = [\n    \"ALABAMA\",\"ALASKA\",\"ARIZONA\",\"ARKANSAS\",\"CALIFORNIA\",\"COLORADO\",\"CONNECTICUT\",\"DELAWARE\",\n    \"DISTRICT OF COLUMBIA\",\"FLORIDA\",\"GEORGIA\",\"HAWAII\",\"ILLINOIS\",\"INDIANA\",\"IOWA\",\"KANSAS\",\n    \"KENTUCKY\",\"LOUISIANA\",\"MARYLAND\",\"MASSACHUSETTS\",\"MICHIGAN\",\"MINNESOTA\",\"MISSISSIPPI\",\n    \"MISSOURI\",\"NEBRASKA\",\"NEVADA\",\"NEW HAMPSHIRE\",\"NEW JERSEY\",\"NEW MEXICO\",\"NEW YORK\",\n    \"NORTH CAROLINA\",\"OHIO\",\"OKLAHOMA\",\"OREGON\",\"PENNSYLVANIA\",\"PUERTO RICO\",\"RHODE ISLAND\",\n    \"SOUTH CAROLINA\",\"SOUTH DAKOTA\",\"TENNESSEE\",\"TEXAS\",\"UTAH\",\"VIRGIN ISLANDS\",\"VIRGINIA\",\n    \"WASHINGTON\",\"WEST VIRGINIA\",\"WISCONSIN\"\n  ];\n\n  \/\/ Minimal \"centroid\" map for dots (not exact, but good-looking).\n  \/\/ If you later give real counts\/lat-lngs, we can swap this to true locations.\n  const LOC = {\n    \/\/ Countries (approx)\n    \"ARUBA\":[12.52,-69.98],\n    \"BAHAMAS\":[25.03,-77.40],\n    \"BARBADOS\":[13.19,-59.54],\n    \"BERMUDA\":[32.31,-64.75],\n    \"BRAZIL\":[-15.78,-47.93],\n    \"BURMA\":[19.76,96.08],\n    \"CAMEROON\":[3.87,11.52],\n    \"CANADA\":[45.42,-75.69],\n    \"CHINA\":[39.90,116.40],\n    \"EGYPT\":[30.04,31.24],\n    \"FRANCE\":[48.86,2.35],\n    \"GERMANY\":[52.52,13.40],\n    \"GHANA\":[5.60,-0.19],\n    \"GREECE\":[37.98,23.73],\n    \"GUYANA\":[6.80,-58.16],\n    \"HONDURAS\":[14.08,-87.21],\n    \"HONG KONG\":[22.32,114.17],\n    \"INDIA\":[28.61,77.21],\n    \"IRELAND\":[53.35,-6.26],\n    \"JAMAICA\":[18.02,-76.80],\n    \"JAPAN\":[35.68,139.69],\n    \"KENYA\":[-1.29,36.82],\n    \"KUWAIT\":[29.38,47.98],\n    \"MONACO\":[43.74,7.42],\n    \"POLAND\":[52.23,21.01],\n    \"RUSSIA\":[55.75,37.62],\n    \"SERBIA\":[44.79,20.45],\n    \"SPAIN\":[40.42,-3.70],\n    \"SRI LANKA\":[6.93,79.86],\n    \"SWITZERLAND\":[46.95,7.44],\n    \"TURKEY\":[41.01,28.97],\n    \"UNITED KINGDOM\":[51.51,-0.13],\n    \"ZIMBABWE\":[-17.83,31.05],\n\n    \/\/ US states (approx capitals\/centroids)\n    \"ALABAMA\":[32.37,-86.30],\n    \"ALASKA\":[58.30,-134.42],\n    \"ARIZONA\":[33.45,-112.07],\n    \"ARKANSAS\":[34.75,-92.29],\n    \"CALIFORNIA\":[38.58,-121.49],\n    \"COLORADO\":[39.74,-104.99],\n    \"CONNECTICUT\":[41.76,-72.67],\n    \"DELAWARE\":[39.16,-75.52],\n    \"DISTRICT OF COLUMBIA\":[38.90,-77.04],\n    \"FLORIDA\":[30.44,-84.28],\n    \"GEORGIA\":[33.75,-84.39],\n    \"HAWAII\":[21.31,-157.86],\n    \"ILLINOIS\":[39.80,-89.65],\n    \"INDIANA\":[39.77,-86.16],\n    \"IOWA\":[41.59,-93.62],\n    \"KANSAS\":[39.04,-95.67],\n    \"KENTUCKY\":[38.20,-84.87],\n    \"LOUISIANA\":[30.45,-91.19],\n    \"MARYLAND\":[38.98,-76.49],\n    \"MASSACHUSETTS\":[42.36,-71.06],\n    \"MICHIGAN\":[42.73,-84.55],\n    \"MINNESOTA\":[44.95,-93.09],\n    \"MISSISSIPPI\":[32.30,-90.18],\n    \"MISSOURI\":[38.58,-92.17],\n    \"NEBRASKA\":[40.81,-96.68],\n    \"NEVADA\":[39.16,-119.77],\n    \"NEW HAMPSHIRE\":[43.21,-71.54],\n    \"NEW JERSEY\":[40.22,-74.76],\n    \"NEW MEXICO\":[35.69,-105.94],\n    \"NEW YORK\":[42.65,-73.76],\n    \"NORTH CAROLINA\":[35.78,-78.64],\n    \"OHIO\":[39.96,-83.00],\n    \"OKLAHOMA\":[35.47,-97.52],\n    \"OREGON\":[44.94,-123.03],\n    \"PENNSYLVANIA\":[40.27,-76.88],\n    \"PUERTO RICO\":[18.47,-66.11],\n    \"RHODE ISLAND\":[41.82,-71.41],\n    \"SOUTH CAROLINA\":[34.00,-81.03],\n    \"SOUTH DAKOTA\":[44.37,-100.35],\n    \"TENNESSEE\":[36.16,-86.78],\n    \"TEXAS\":[30.27,-97.74],\n    \"UTAH\":[40.76,-111.89],\n    \"VIRGIN ISLANDS\":[18.34,-64.93],\n    \"VIRGINIA\":[37.54,-77.43],\n    \"WASHINGTON\":[47.04,-122.90],\n    \"WEST VIRGINIA\":[38.35,-81.63],\n    \"WISCONSIN\":[43.07,-89.40]\n  };\n\n  function buildMarkers(names, size){\n    const out = [];\n    for (const n of names){\n      const ll = LOC[n];\n      if (!ll) continue;\n      out.push({ location: ll, size });\n    }\n    return out;\n  }\n\n  \/\/ Mix: countries slightly larger, states slightly smaller\n  const markers = [\n    ...buildMarkers(countries, 0.06),\n    ...buildMarkers(states, 0.035),\n  ];\n\n  let width = 0;\n  let phi = 0;\n  let dragging = false;\n  let lastX = 0;\n  let dragOffset = 0;\n  let pauseByHover = false;\n\n  function resize(){\n    width = canvas.offsetWidth || canvas.getBoundingClientRect().width || 520;\n    const dpr = Math.min(window.devicePixelRatio || 1, 2);\n    canvas.width = Math.floor(width * dpr);\n    canvas.height = Math.floor(width * dpr);\n  }\n\n  const wrap = canvas.closest(\".oar-globe-wrap\");\n  if (wrap){\n    wrap.addEventListener(\"mouseenter\", () => { pauseByHover = true; });\n    wrap.addEventListener(\"mouseleave\", () => { pauseByHover = false; });\n  }\n\n  canvas.style.cursor = \"grab\";\n\n  canvas.addEventListener(\"pointerdown\", (e) => {\n    dragging = true;\n    lastX = e.clientX;\n    canvas.setPointerCapture(e.pointerId);\n    canvas.style.cursor = \"grabbing\";\n  });\n\n  canvas.addEventListener(\"pointermove\", (e) => {\n    if (!dragging) return;\n    const dx = e.clientX - lastX;\n    lastX = e.clientX;\n    dragOffset += dx \/ 800; \/\/ rotation sensitivity\n  });\n\n  function endDrag(){\n    dragging = false;\n    canvas.style.cursor = \"grab\";\n  }\n  canvas.addEventListener(\"pointerup\", endDrag);\n  canvas.addEventListener(\"pointercancel\", endDrag);\n  canvas.addEventListener(\"pointerleave\", endDrag);\n\n  resize();\n  window.addEventListener(\"resize\", resize);\n\n  const globe = window.cobe.createGlobe(canvas, {\n    devicePixelRatio: 2,\n    width: canvas.width,\n    height: canvas.height,\n\n    phi: 0,\n    theta: 0.32,\n\n    dark: 0,\n    diffuse: 0.65,\n    mapSamples: 16000,\n    mapBrightness: 1.25,\n\n    baseColor: [1, 1, 1],\n    glowColor: [0.95, 0.97, 1],\n    markerColor: [0 \/ 255, 74 \/ 255, 173 \/ 255],   \/\/ Hampton blue\n    markers,\n\n    onRender: (state) => {\n      \/\/ keep size in sync\n      state.width = canvas.width;\n      state.height = canvas.height;\n\n      \/\/ hover pauses auto-rotate; drag always controls\n      if (!reduceMotion && !pauseByHover && !dragging){\n        phi += 0.006;\n      }\n      state.phi = phi + dragOffset;\n    },\n  });\n\n  \/\/ safety cleanup if Elementor swaps DOM\n  window.addEventListener(\"beforeunload\", () => globe.destroy());\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4a510a9 elementor-section-full_width oar-flowwrap elementor-section-height-default elementor-section-height-default\" data-id=\"4a510a9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f3d269c\" data-id=\"f3d269c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1be6d25 elementor-widget elementor-widget-html\" data-id=\"1be6d25\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"oar-kpis\" aria-label=\"Key institutional indicators\">\n  <div class=\"oar-kpis__inner\">\n    <div class=\"oar-kpi\">\n      <div class=\"oar-kpi__value\" data-target=\"4686\" data-format=\"comma\">0<\/div>\n      <div class=\"oar-kpi__label\">ENROLLED STUDENTS<\/div>\n    <\/div>\n\n    <div class=\"oar-kpi\">\n      <div class=\"oar-kpi__value\" data-target=\"110\" data-format=\"int\">0<\/div>\n      <div class=\"oar-kpi__label\">PROGRAMS OFFERED<\/div>\n    <\/div>\n\n    <div class=\"oar-kpi\">\n      <div class=\"oar-kpi__value\" data-target=\"83\" data-format=\"percent\">0%<\/div>\n      <div class=\"oar-kpi__label\">OVERALL RETENTION RATE<\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n:root{\n  --oar-primary:#004AAD;\n  --oar-accent:#02275A;\n  --oar-white:#FFFFFF;\n}\n\n\/* Seamless spacing with surrounding sections *\/\n.oar-kpis{\n  padding: 26px 20px 70px;\n  background: transparent; \/* let the page background show through *\/\n}\n\n.oar-kpis__inner{\n  max-width: 1140px;\n  margin: 0 auto;\n  border-radius: 34px;\n  padding: 44px 26px;\n\n  background: linear-gradient(135deg, #004AAD 0%, #02275A 100%);\n  box-shadow: 0 26px 70px rgba(0,74,173,.22);\n\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 18px;\n  position: relative;\n  overflow: hidden;\n}\n\n\/* subtle light sweep *\/\n.oar-kpis__inner::before{\n  content:\"\";\n  position:absolute;\n  inset:-60px -120px auto auto;\n  width: 380px;\n  height: 380px;\n  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.18), transparent 60%);\n  transform: rotate(18deg);\n  pointer-events:none;\n}\n\n.oar-kpi{\n  text-align: center;\n  color: var(--oar-white);\n}\n\n.oar-kpi__value{\n  font-weight: 900;\n  font-size: 56px;\n  line-height: 1.0;\n  letter-spacing: -0.02em;\n}\n\n.oar-kpi__label{\n  margin-top: 10px;\n  font-size: 11px;\n  letter-spacing: .22em;\n  opacity: .9;\n}\n.oar-wow{\n  background: transparent !important;\n  border: 0 !important;\n}\n.oar-wow:after{ display:none !important; } \/* removes the white fade that creates a cut *\/\n@media (max-width: 900px){\n  .oar-kpis__inner{\n    grid-template-columns: 1fr;\n    padding: 34px 20px;\n  }\n  .oar-kpi__value{ font-size: 48px; }\n}\n<\/style>\n\n<script>\n(() => {\n  const root = document.querySelector(\".oar-kpis\");\n  if (!root) return;\n\n  const els = Array.from(root.querySelectorAll(\".oar-kpi__value\"));\n  if (!els.length) return;\n\n  const prefersReduced = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  const formatValue = (n, fmt) => {\n    if (fmt === \"percent\") return `${Math.round(n)}%`;\n    if (fmt === \"comma\") return Math.round(n).toLocaleString();\n    return `${Math.round(n)}`;\n  };\n\n  const animate = (el) => {\n    const target = Number(el.dataset.target || \"0\");\n    const fmt = el.dataset.format || \"int\";\n    if (!target) return;\n\n    if (prefersReduced){\n      el.textContent = formatValue(target, fmt);\n      return;\n    }\n\n    const duration = 900; \/\/ ms\n    const start = performance.now();\n    const from = 0;\n\n    const tick = (t) => {\n      const p = Math.min(1, (t - start) \/ duration);\n      \/\/ easeOutCubic\n      const eased = 1 - Math.pow(1 - p, 3);\n      const val = from + (target - from) * eased;\n      el.textContent = formatValue(val, fmt);\n      if (p < 1) requestAnimationFrame(tick);\n    };\n    requestAnimationFrame(tick);\n  };\n\n  let ran = false;\n  const io = new IntersectionObserver((entries) => {\n    if (ran) return;\n    if (entries.some(e => e.isIntersecting)){\n      ran = true;\n      els.forEach(animate);\n      io.disconnect();\n    }\n  }, { threshold: 0.35 });\n\n  io.observe(root);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e2feca elementor-widget elementor-widget-html\" data-id=\"7e2feca\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"oar-dashgrid oar-dashgrid--simple\">\n  <!-- background particles (ONLY for this section) -->\n  <canvas class=\"oar-dashgrid__bg\" id=\"oarDashGridBg\" aria-hidden=\"true\"><\/canvas>\n\n  <div class=\"oar-dashgrid__container\">\n    <div class=\"oar-dashgrid__header\">\n      <h2>Explore Institutional Dashboards<\/h2>\n      <p>Access interactive dashboards across key performance areas.<\/p>\n    <\/div>\n\n    <div class=\"oar-dashgrid__grid\">\n      <a class=\"oar-dashgrid__card\" href=\"https:\/\/home.hamptonu.edu\/about\/oar-admission\/\">\n        <div class=\"oar-dashgrid__top\">\n          <h3>Admissions<\/h3>\n          <span class=\"oar-dashgrid__arrow\" aria-hidden=\"true\">\u2192<\/span>\n        <\/div>\n        <p>Application trends, yield rates, and recruitment pipeline.<\/p>\n      <\/a>\n\n      <a class=\"oar-dashgrid__card\" href=\"https:\/\/home.hamptonu.edu\/about\/oar-enrollment\/\">\n        <div class=\"oar-dashgrid__top\">\n          <h3>Enrollment<\/h3>\n          <span class=\"oar-dashgrid__arrow\" aria-hidden=\"true\">\u2192<\/span>\n        <\/div>\n        <p>Headcount, demographics, and enrollment trends.<\/p>\n      <\/a>\n\n      <a class=\"oar-dashgrid__card\" href=\"https:\/\/home.hamptonu.edu\/about\/oar-retention-and-graduation-part-of-oar-page\/\">\n        <div class=\"oar-dashgrid__top\">\n          <h3>Graduation &amp; Retention<\/h3>\n          <span class=\"oar-dashgrid__arrow\" aria-hidden=\"true\">\u2192<\/span>\n        <\/div>\n        <p>Cohort tracking, persistence, and completion rates.<\/p>\n      <\/a>\n\n      <a class=\"oar-dashgrid__card\" href=\"https:\/\/home.hamptonu.edu\/about\/oar-degree-con-part-of-oar-page\/\">\n        <div class=\"oar-dashgrid__top\">\n          <h3>Degrees Awarded<\/h3>\n          <span class=\"oar-dashgrid__arrow\" aria-hidden=\"true\">\u2192<\/span>\n        <\/div>\n        <p>Awards by program, level, and academic year.<\/p>\n      <\/a>\n\n      <a class=\"oar-dashgrid__card\" href=\"https:\/\/home.hamptonu.edu\/about\/oar-student-credit-hours-part-of-oar-page\/\">\n        <div class=\"oar-dashgrid__top\">\n          <h3>Student FTE<\/h3>\n          <span class=\"oar-dashgrid__arrow\" aria-hidden=\"true\">\u2192<\/span>\n        <\/div>\n        <p>Full-time equivalent credit hour reporting.<\/p>\n      <\/a>\n\n      <a class=\"oar-dashgrid__card\" href=\"https:\/\/home.hamptonu.edu\/about\/oar-kpi-scorecards-part-of-oar-page\/\">\n        <div class=\"oar-dashgrid__top\">\n          <h3>KPI Scorecards<\/h3>\n          <span class=\"oar-dashgrid__arrow\" aria-hidden=\"true\">\u2192<\/span>\n        <\/div>\n        <p>Strategic performance indicators and institutional targets.<\/p>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n:root{\n  --oar-primary:#004AAD;\n  --oar-accent:#02275A;\n  --oar-gray:#BEBFC3;\n  --oar-text:#353A3C;\n}\n\n\/* Section *\/\n.oar-dashgrid--simple{\n  background: linear-gradient(180deg, #FBFDFF 0%, #FFFFFF 55%) !important;\n}\n\n\/* Particles canvas *\/\n.oar-dashgrid__bg{\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  display:block;\n  pointer-events: none;\n  z-index: 0;\n  opacity: .75;\n}\n\n\/* Keep content above background *\/\n.oar-dashgrid__container{\n  position: relative;\n  z-index: 1;\n  max-width: 1140px;\n  margin: 0 auto;\n}\n\n.oar-dashgrid__header{\n  text-align:center;\n  margin-bottom: 42px;\n}\n\n.oar-dashgrid__header h2{\n  margin: 0 0 10px;\n  font-size: 36px;\n  font-weight: 900;\n  color: var(--oar-accent);\n}\n\n.oar-dashgrid__header p{\n  margin: 0;\n  color: var(--oar-text);\n  opacity: .88;\n  font-size: 16px;\n}\n\n\/* Grid *\/\n.oar-dashgrid__grid{\n  display:grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 22px;\n}\n\n\/* Cards (removed the top \u201cline\u201d entirely) *\/\n.oar-dashgrid__card{\n  text-decoration:none !important;\n  color: inherit;\n  border-radius: 22px;\n  padding: 22px;\n  background: linear-gradient(135deg, rgba(234,242,255,.92) 0%, rgba(255,255,255,.92) 72%);\n  border: 1px solid rgba(0,74,173,.12);\n  box-shadow: 0 10px 26px rgba(2,39,90,.06);\n  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;\n  position: relative;\n  overflow: hidden;\n  backdrop-filter: blur(6px);\n  -webkit-backdrop-filter: blur(6px);\n}\n\n.oar-dashgrid__card:hover{\n  transform: translateY(-6px);\n  border-color: rgba(0,74,173,.26);\n  box-shadow: 0 22px 46px rgba(0,74,173,.14);\n  background: linear-gradient(135deg, rgba(234,242,255,.98) 0%, rgba(255,255,255,.98) 72%);\n}\n\n\/* top row *\/\n.oar-dashgrid__top{\n  display:flex;\n  align-items:flex-start;\n  justify-content:space-between;\n  gap: 14px;\n  margin-bottom: 10px;\n}\n\n.oar-dashgrid__card h3{\n  margin: 0;\n  font-size: 20px;\n  font-weight: 900;\n  color: var(--oar-accent);\n}\n\n\/* arrow chip *\/\n.oar-dashgrid__arrow{\n  width: 34px;\n  height: 34px;\n  border-radius: 999px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background: rgba(0,74,173,.10);\n  color: var(--oar-primary);\n  font-weight: 900;\n  flex: 0 0 auto;\n  transition: transform .22s ease, background .22s ease;\n}\n\n.oar-dashgrid__card:hover .oar-dashgrid__arrow{\n  transform: translateX(2px);\n  background: rgba(0,74,173,.16);\n}\n\n.oar-dashgrid__card p{\n  margin: 0;\n  color: var(--oar-text);\n  line-height: 1.6;\n  font-size: 14px;\n}\n\n\/* Mobile *\/\n@media (max-width: 900px){\n  .oar-dashgrid__grid{ grid-template-columns: 1fr; }\n  .oar-dashgrid__header h2{ font-size: 30px; }\n}\n<\/style>\n\n<script>\n(() => {\n  const canvas = document.getElementById(\"oarDashGridBg\");\n  if (!canvas) return;\n\n  const section = canvas.closest(\".oar-dashgrid--simple\");\n  if (!section) return;\n\n  const ctx = canvas.getContext(\"2d\", { alpha: true });\n  const reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  let w=0,h=0,dpr=1;\n\n  function resize(){\n    const r = section.getBoundingClientRect();\n    dpr = Math.min(window.devicePixelRatio || 1, 2);\n    w = Math.max(1, Math.floor(r.width));\n    h = Math.max(1, Math.floor(r.height));\n    canvas.width  = Math.floor(w * dpr);\n    canvas.height = Math.floor(h * dpr);\n    ctx.setTransform(dpr,0,0,dpr,0,0);\n  }\n\n  \/\/ IMPORTANT: tracks section height so it fills to the bottom\n  const ro = new ResizeObserver(() => resize());\n  ro.observe(section);\n  window.addEventListener(\"resize\", resize);\n  resize();\n\n  const rand = (min,max)=>Math.random()*(max-min)+min;\n\n  \/\/ Hampton colors\n  const lineBase = { r: 2, g: 39, b: 90 };     \/\/ accent\n  const dotBase  = { r: 0, g: 74, b: 173 };    \/\/ primary\n\n  const COUNT = 56;\n  const P = [];\n\n  function init(){\n    P.length = 0;\n    for(let i=0;i<COUNT;i++){\n      P.push({\n        x: rand(0,w),\n        y: rand(0,h),\n        vx: rand(-0.18,0.18),\n        vy: rand(-0.14,0.14),\n        r: rand(1.1,2.0),\n        t: Math.random() < 0.55 ? 1 : 2\n      });\n    }\n  }\n  init();\n\n  let mx = -9999, my = -9999;\n  section.addEventListener(\"mousemove\", (e)=>{\n    const r = section.getBoundingClientRect();\n    mx = e.clientX - r.left;\n    my = e.clientY - r.top;\n  });\n  section.addEventListener(\"mouseleave\", ()=>{ mx=-9999; my=-9999; });\n\n  function rgba(c,a){ return `rgba(${c.r},${c.g},${c.b},${a})`; }\n\n  function draw(){\n    ctx.clearRect(0,0,w,h);\n\n    if(!reduceMotion){\n      for(const p of P){\n        p.x += p.vx; p.y += p.vy;\n        if(p.x < -20) p.x = w+20;\n        if(p.x >  w+20) p.x = -20;\n        if(p.y < -20) p.y = h+20;\n        if(p.y >  h+20) p.y = -20;\n      }\n    }\n\n    \/\/ lines\n    const maxD = 140;\n    for(let i=0;i<P.length;i++){\n      for(let j=i+1;j<P.length;j++){\n        const a=P[i], b=P[j];\n        const dx=a.x-b.x, dy=a.y-b.y;\n        const d=Math.sqrt(dx*dx+dy*dy);\n        if(d<maxD){\n          const alpha = (1 - d\/maxD) * 0.9;\n          ctx.strokeStyle = rgba(lineBase, 0.10 * alpha);\n          ctx.lineWidth = 1;\n          ctx.beginPath();\n          ctx.moveTo(a.x,a.y);\n          ctx.lineTo(b.x,b.y);\n          ctx.stroke();\n        }\n      }\n    }\n\n    \/\/ dots + hover glow\n    for(const p of P){\n      const dx = p.x-mx, dy=p.y-my;\n      const d = Math.sqrt(dx*dx+dy*dy);\n      const glow = d < 150 ? (1 - d\/150) : 0;\n\n      const base = p.t === 1 ? dotBase : lineBase;\n      ctx.fillStyle = rgba(base, p.t === 1 ? 0.26 : 0.18);\n\n      ctx.beginPath();\n      ctx.arc(p.x,p.y,p.r + glow*1.5,0,Math.PI*2);\n      ctx.fill();\n\n      if(glow>0){\n        ctx.fillStyle = rgba(dotBase, 0.08 * glow);\n        ctx.beginPath();\n        ctx.arc(p.x,p.y,(p.r+6) + glow*12,0,Math.PI*2);\n        ctx.fill();\n      }\n    }\n\n    requestAnimationFrame(draw);\n  }\n  draw();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f032f1 elementor-widget elementor-widget-html\" data-id=\"5f032f1\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"oar-whatwedo\" id=\"what-we-do\">\n  <div class=\"oar-whatwedo__container\">\n    <div class=\"oar-whatwedo__header\">\n      <h2>What OAR Does<\/h2>\n      <p>We support campus decision-making with trusted data, analysis, and reporting.<\/p>\n    <\/div>\n\n    <div class=\"oar-whatwedo__grid\">\n      <div class=\"oar-whatwedo__card\">\n        <div class=\"oar-whatwedo__icon\" aria-hidden=\"true\">\ud83d\udcca<\/div>\n        <h3>Dashboards & Reporting<\/h3>\n        <p>Interactive dashboards and recurring reports for key institutional metrics.<\/p>\n      <\/div>\n\n      <div class=\"oar-whatwedo__card\">\n        <div class=\"oar-whatwedo__icon\" aria-hidden=\"true\">\ud83d\udd0e<\/div>\n        <h3>Analysis & Insights<\/h3>\n        <p>Trend analysis and data interpretation to support planning and improvement.<\/p>\n      <\/div>\n\n      <div class=\"oar-whatwedo__card\">\n        <div class=\"oar-whatwedo__icon\" aria-hidden=\"true\">\ud83e\uddfe<\/div>\n        <h3>Survey Support<\/h3>\n        <p>Survey design, distribution guidance, and results summaries for stakeholders.<\/p>\n      <\/div>\n\n      <div class=\"oar-whatwedo__card\">\n        <div class=\"oar-whatwedo__icon\" aria-hidden=\"true\">\ud83e\udde0<\/div>\n        <h3>Data Requests<\/h3>\n        <p>Help finding the right data, defining needs, and delivering usable outputs.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n:root{\n  --oar-primary:#004AAD;\n  --oar-accent:#02275A;\n  --oar-gray:#BEBFC3;\n  --oar-text:#353A3C;\n}\n\n.oar-whatwedo{\n  padding: 90px 20px;\n  background: transparent !important; \/* remove background block *\/\n}\n\n.oar-whatwedo__container{\n  max-width: 1140px;\n  margin: 0 auto;\n}\n\n.oar-whatwedo__header{\n  text-align:center;\n  margin-bottom: 42px;\n}\n\n.oar-whatwedo__header h2{\n  margin: 0 0 10px;\n  font-size: 34px;\n  font-weight: 900;\n  color: #02275A;\n}\n\n.oar-whatwedo__header p{\n  margin: 0;\n  color: #353A3C;\n  opacity: .85;\n  font-size: 16px;\n}\n\n\/* Grid *\/\n.oar-whatwedo__grid{\n  display:grid;\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n  gap: 22px;\n}\n\n\/* Clean institutional cards *\/\n.oar-whatwedo__card{\n  border-radius: 18px;\n  padding: 22px;\n  background: #ffffff;\n  border: 1px solid rgba(0,74,173,.12);\n  box-shadow: 0 8px 22px rgba(2,39,90,.05);\n  transition: transform .2s ease, box-shadow .2s ease;\n}\n\n.oar-whatwedo__card:hover{\n  transform: translateY(-4px);\n  box-shadow: 0 16px 36px rgba(2,39,90,.10);\n}\n\n.oar-whatwedo__card h3{\n  margin: 0 0 8px;\n  font-size: 18px;\n  font-weight: 800;\n  color: #02275A;\n}\n\n.oar-whatwedo__card p{\n  margin: 0;\n  font-size: 14px;\n  line-height: 1.6;\n  color: #353A3C;\n}\n\n@media (max-width: 1000px){\n  .oar-whatwedo__grid{ grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 640px){\n  .oar-whatwedo__grid{ grid-template-columns: 1fr; }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-597fe50 elementor-widget elementor-widget-html\" data-id=\"597fe50\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"oar-request\" id=\"request-data\">\n  <div class=\"oar-request__container\">\n    <div class=\"oar-request__panel\">\n      <div class=\"oar-request__copy\">\n        <div class=\"oar-request__eyebrow\">Data Request<\/div>\n        <h2>Request Data from OAR<\/h2>\n        <p>\n          Tell us what you need and how you plan to use it. We\u2019ll follow up to confirm scope, timelines, and delivery format.\n        <\/p>\n\n        <ul class=\"oar-request__list\">\n          <li><strong>Best for:<\/strong> program planning, accreditation, reporting, presentations<\/li>\n          <li><strong>Typical outputs:<\/strong> dashboard link, table, chart, summary memo<\/li>\n          <li><strong>Helpful details:<\/strong> audience, timeframe, level (University\/School\/Dept), format<\/li>\n        <\/ul>\n      <\/div>\n\n      <div class=\"oar-request__actions\">\n        <!-- Replace href with your actual Microsoft Form \/ Watermark \/ ticket link -->\n        <a class=\"oar-request__btn oar-request__btn--primary\" href=\"https:\/\/home.hamptonu.edu\/oar\/operations-analysis-and-research-data\/\" target=\"_blank\" rel=\"noopener\">\n          Submit a Data Request \u2192\n        <\/a>\n\n        <a class=\"oar-request__btn oar-request__btn--ghost\" href=\"\/about\/facts-figures\/\">\n          Browse Facts &amp; Figures \u2192\n        <\/a>\n\n        <div class=\"oar-request__note\">\n          For urgent needs, include your deadline and preferred delivery format.\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n:root{\n  --oar-primary:#004AAD;\n  --oar-accent:#02275A;\n  --oar-gray:#BEBFC3;\n  --oar-text:#353A3C;\n  --oar-white:#ffffff;\n}\n\n\/* Request Data *\/\n.oar-request{\n  padding: 90px 20px;\n  background: transparent !important; \/* remove block *\/\n}\n\n.oar-request__container{\n  max-width: 1140px;\n  margin: 0 auto;\n}\n\n.oar-request__panel{\n  border-radius: 26px;\n  padding: 28px;\n  background: rgba(255,255,255,.70);\n  border: 1px solid rgba(0,74,173,.12);\n  box-shadow: 0 18px 46px rgba(2,39,90,.08);\n  backdrop-filter: blur(10px);\n  -webkit-backdrop-filter: blur(10px);\n\n  display:grid;\n  grid-template-columns: 1.3fr .7fr;\n  gap: 22px;\n  align-items: start;\n}\n\n.oar-request__eyebrow{\n  font-size: 12px;\n  letter-spacing: .18em;\n  text-transform: uppercase;\n  color: rgba(2,39,90,.82);\n  margin-bottom: 10px;\n}\n\n.oar-request__copy h2{\n  margin: 0 0 10px;\n  font-size: 30px;\n  font-weight: 900;\n  color: var(--oar-accent);\n}\n\n.oar-request__copy p{\n  margin: 0 0 14px;\n  color: var(--oar-text);\n  line-height: 1.7;\n  font-size: 15px;\n}\n\n.oar-request__list{\n  margin: 0;\n  padding-left: 18px;\n  color: var(--oar-text);\n  line-height: 1.7;\n  font-size: 14px;\n}\n\n.oar-request__actions{\n  border-radius: 22px;\n  padding: 18px;\n  background: rgba(255,255,255,.60);\n  border: 1px solid rgba(190,191,195,.55);\n}\n\n.oar-request__btn{\n  display:flex;\n  justify-content:center;\n  align-items:center;\n  gap:10px;\n  width: 100%;\n  border-radius: 999px;\n  padding: 12px 14px;\n  text-decoration:none !important;\n  font-weight: 900;\n  transition: transform .14s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;\n}\n\n.oar-request__btn--primary{\n  background: linear-gradient(135deg, var(--oar-primary), var(--oar-accent));\n  color: var(--oar-white) !important;\n  box-shadow: 0 14px 30px rgba(0,74,173,.18);\n  margin-bottom: 10px;\n}\n\n.oar-request__btn--primary:hover{\n  transform: translateY(-2px);\n  box-shadow: 0 18px 38px rgba(0,74,173,.24);\n}\n\n.oar-request__btn--ghost{\n  background: rgba(255,255,255,.85);\n  color: var(--oar-accent) !important;\n  border: 1px solid rgba(190,191,195,.85);\n}\n\n.oar-request__btn--ghost:hover{\n  transform: translateY(-2px);\n  border-color: rgba(0,74,173,.35);\n  box-shadow: 0 14px 30px rgba(2,39,90,.10);\n}\n\n.oar-request__note{\n  margin-top: 12px;\n  font-size: 13px;\n  color: rgba(53,58,60,.85);\n  line-height: 1.5;\n}\n\n@media (max-width: 900px){\n  .oar-request__panel{ grid-template-columns: 1fr; }\n  .oar-request{ padding: 70px 16px; }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1d58217 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1d58217\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-f5329ea\" data-id=\"f5329ea\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-759fa7d\" data-id=\"759fa7d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-aa87fca elementor-widget elementor-widget-html\" data-id=\"aa87fca\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- OAR Student Population Globe (COBE, no React) -->\n<div class=\"oar-globe-wrap\" role=\"img\" aria-label=\"Student population map (interactive globe)\">\n  <div class=\"oar-globe-label\">\n    <div class=\"oar-globe-pill\">Student Population Map<\/div>\n    <div class=\"oar-globe-hint\">Hover to pause \u2022 Drag to rotate<\/div>\n  <\/div>\n\n  <canvas id=\"oarStudentGlobe\" class=\"oar-globe-canvas\"><\/canvas>\n<\/div>\n\n<style>\n  .oar-globe-wrap{\n    position: relative;\n    width: 100%;\n    max-width: 520px;         \/* adjust to fit your hero right side *\/\n    aspect-ratio: 1 \/ 1;\n    margin-left: auto;        \/* keeps it to the right if inside a flex\/grid *\/\n    border-radius: 999px;\n    overflow: hidden;\n    background: radial-gradient(circle at 50% 45%, rgba(0,74,173,.12), rgba(255,255,255,0) 60%);\n  }\n\n  .oar-globe-label{\n    position:absolute;\n    left: 18px;\n    top: 18px;\n    z-index: 2;\n    pointer-events: none;\n  }\n\n  .oar-globe-pill{\n    display:inline-flex;\n    align-items:center;\n    gap:10px;\n    padding: 8px 12px;\n    border-radius: 999px;\n    background: rgba(255,255,255,.65);\n    border: 1px solid rgba(0,74,173,.18);\n    color: #02275A;\n    font-weight: 800;\n    font-size: 12px;\n    letter-spacing: .02em;\n    backdrop-filter: blur(10px);\n    -webkit-backdrop-filter: blur(10px);\n  }\n\n  .oar-globe-hint{\n    margin-top: 10px;\n    color: rgba(53,58,60,.78);\n    font-size: 12px;\n    font-weight: 600;\n    text-shadow: 0 1px 0 rgba(255,255,255,.6);\n  }\n\n  .oar-globe-canvas{\n    width: 100%;\n    height: 100%;\n    display:block;\n    cursor: grab;\n  }\n  .oar-globe-canvas:active{ cursor: grabbing; }\n<\/style>\n\n<script type=\"module\">\n  import createGlobe from \"https:\/\/cdn.skypack.dev\/cobe\";\n\n  const canvas = document.getElementById(\"oarStudentGlobe\");\n  if (!canvas) throw new Error(\"Globe canvas not found\");\n\n  const prefersReduced =\n    window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  \/\/ --- Locations (approx) ---\n  \/\/ Note: COBE uses [lat, lon]\n  const countryMarkers = [\n    \/\/ Caribbean \/ Americas\n    { name:\"Aruba\", lat:12.52, lon:-69.97, size:0.05 },\n    { name:\"Bahamas\", lat:25.03, lon:-77.40, size:0.05 },\n    { name:\"Barbados\", lat:13.19, lon:-59.54, size:0.05 },\n    { name:\"Bermuda\", lat:32.31, lon:-64.75, size:0.05 },\n    { name:\"Brazil\", lat:-15.78, lon:-47.93, size:0.06 },     \/\/ Bras\u00edlia\n    { name:\"Canada\", lat:45.42, lon:-75.70, size:0.05 },      \/\/ Ottawa\n    { name:\"Guyana\", lat:6.80, lon:-58.16, size:0.05 },       \/\/ Georgetown\n    { name:\"Honduras\", lat:14.07, lon:-87.20, size:0.05 },    \/\/ Tegucigalpa\n    { name:\"Jamaica\", lat:18.02, lon:-76.80, size:0.05 },     \/\/ Kingston\n\n    \/\/ Europe\n    { name:\"France\", lat:48.86, lon:2.35, size:0.05 },\n    { name:\"Germany\", lat:52.52, lon:13.41, size:0.05 },\n    { name:\"Greece\", lat:37.98, lon:23.73, size:0.05 },\n    { name:\"Ireland\", lat:53.35, lon:-6.26, size:0.05 },\n    { name:\"Monaco\", lat:43.74, lon:7.42, size:0.05 },\n    { name:\"Poland\", lat:52.23, lon:21.01, size:0.05 },\n    { name:\"Russia\", lat:55.76, lon:37.62, size:0.05 },\n    { name:\"Serbia\", lat:44.81, lon:20.46, size:0.05 },\n    { name:\"Spain\", lat:40.42, lon:-3.70, size:0.05 },\n    { name:\"Switzerland\", lat:46.95, lon:7.45, size:0.05 },\n    { name:\"Turkey\", lat:39.93, lon:32.86, size:0.05 },\n    { name:\"United Kingdom\", lat:51.51, lon:-0.13, size:0.05 },\n\n    \/\/ Africa \/ Middle East\n    { name:\"Cameroon\", lat:3.87, lon:11.52, size:0.05 },      \/\/ Yaound\u00e9\n    { name:\"Egypt\", lat:30.04, lon:31.24, size:0.05 },\n    { name:\"Ghana\", lat:5.56, lon:-0.20, size:0.05 },         \/\/ Accra\n    { name:\"Kenya\", lat:-1.29, lon:36.82, size:0.05 },        \/\/ Nairobi\n    { name:\"Kuwait\", lat:29.38, lon:47.98, size:0.05 },\n    { name:\"Zimbabwe\", lat:-17.83, lon:31.05, size:0.05 },    \/\/ Harare\n\n    \/\/ Asia\n    { name:\"China\", lat:39.90, lon:116.41, size:0.05 },       \/\/ Beijing\n    { name:\"Hong Kong\", lat:22.32, lon:114.17, size:0.05 },\n    { name:\"India\", lat:28.61, lon:77.21, size:0.05 },        \/\/ Delhi\n    { name:\"Japan\", lat:35.68, lon:139.69, size:0.05 },       \/\/ Tokyo\n    { name:\"Sri Lanka\", lat:6.93, lon:79.86, size:0.05 },     \/\/ Colombo\n    { name:\"Burma (Myanmar)\", lat:16.84, lon:96.17, size:0.05 },\n  ];\n\n  \/\/ US states (use capitals as approx points)\n  const stateMarkers = [\n    [\"Alabama\",32.37,-86.30],[\"Alaska\",58.30,-134.42],[\"Arizona\",33.45,-112.07],\n    [\"Arkansas\",34.75,-92.29],[\"California\",38.58,-121.49],[\"Colorado\",39.74,-104.99],\n    [\"Connecticut\",41.76,-72.67],[\"Delaware\",39.16,-75.52],[\"District of Columbia\",38.90,-77.04],\n    [\"Florida\",30.44,-84.28],[\"Georgia\",33.75,-84.39],[\"Hawaii\",21.31,-157.86],\n    [\"Illinois\",39.80,-89.65],[\"Indiana\",39.77,-86.16],[\"Iowa\",41.59,-93.62],\n    [\"Kansas\",39.05,-95.67],[\"Kentucky\",38.20,-84.87],[\"Louisiana\",30.45,-91.14],\n    [\"Maryland\",38.98,-76.49],[\"Massachusetts\",42.36,-71.06],[\"Michigan\",42.73,-84.56],\n    [\"Minnesota\",44.95,-93.09],[\"Mississippi\",32.30,-90.18],[\"Missouri\",38.58,-92.17],\n    [\"Nebraska\",40.81,-96.68],[\"Nevada\",39.16,-119.77],[\"New Hampshire\",43.21,-71.54],\n    [\"New Jersey\",40.22,-74.76],[\"New Mexico\",35.69,-105.94],[\"New York\",42.65,-73.76],\n    [\"North Carolina\",35.78,-78.64],[\"Ohio\",39.96,-83.00],[\"Oklahoma\",35.47,-97.52],\n    [\"Oregon\",44.94,-123.03],[\"Pennsylvania\",40.27,-76.88],[\"Puerto Rico\",18.47,-66.11],\n    [\"Rhode Island\",41.82,-71.41],[\"South Carolina\",34.00,-81.03],[\"South Dakota\",44.37,-100.35],\n    [\"Tennessee\",36.16,-86.78],[\"Texas\",30.27,-97.74],[\"Utah\",40.76,-111.89],\n    [\"Virgin Islands\",18.34,-64.93],[\"Virginia\",37.54,-77.44],[\"Washington\",47.04,-122.90],\n    [\"West Virginia\",38.35,-81.63],[\"Wisconsin\",43.07,-89.40]\n  ].map(([name,lat,lon]) => ({ name, lat, lon, size: 0.035 }));\n\n  const markers = [...countryMarkers, ...stateMarkers].map(m => ({\n    location: [m.lat, m.lon],\n    size: m.size\n  }));\n\n  \/\/ --- Interaction ---\n  let phi = 0;\n  let isHovering = false;\n  let isDragging = false;\n  let pointerStartX = 0;\n  let dragDelta = 0;\n\n  const setSize = () => {\n    const dpr = Math.min(window.devicePixelRatio || 1, 2);\n    const rect = canvas.getBoundingClientRect();\n    canvas.width = Math.floor(rect.width * dpr);\n    canvas.height = Math.floor(rect.height * dpr);\n  };\n\n  canvas.addEventListener(\"mouseenter\", () => { isHovering = true; });\n  canvas.addEventListener(\"mouseleave\", () => { isHovering = false; isDragging = false; });\n\n  canvas.addEventListener(\"pointerdown\", (e) => {\n    isDragging = true;\n    pointerStartX = e.clientX;\n    canvas.setPointerCapture(e.pointerId);\n  });\n  canvas.addEventListener(\"pointerup\", () => { isDragging = false; });\n  canvas.addEventListener(\"pointercancel\", () => { isDragging = false; });\n  canvas.addEventListener(\"pointermove\", (e) => {\n    if (!isDragging) return;\n    dragDelta = (e.clientX - pointerStartX) \/ 600; \/\/ sensitivity\n  });\n\n  setSize();\n  window.addEventListener(\"resize\", setSize);\n\n  const globe = createGlobe(canvas, {\n    devicePixelRatio: Math.min(window.devicePixelRatio || 1, 2),\n    width: canvas.width,\n    height: canvas.height,\n    phi: 0,\n    theta: 0.30,\n    dark: 0,\n\n    \/\/ Visuals (match your Hampton palette)\n    diffuse: 0.55,\n    mapSamples: 16000,\n    mapBrightness: 1.15,\n    baseColor: [0.98, 0.99, 1],\n    glowColor: [0.92, 0.95, 1],\n\n    \/\/ Dots\n    markerColor: [0 \/ 255, 74 \/ 255, 173 \/ 255],\n    markers,\n\n    onRender: (state) => {\n      \/\/ keep canvas sized\n      state.width = canvas.width;\n      state.height = canvas.height;\n\n      const shouldAutoRotate = !prefersReduced && !isHovering && !isDragging;\n\n      if (shouldAutoRotate) phi += 0.0045;\n      if (isDragging) phi += dragDelta;\n\n      \/\/ decay drag so it feels smooth\n      dragDelta *= 0.92;\n\n      state.phi = phi;\n    },\n  });\n\n  \/\/ clean up if Elementor re-renders\n  window.addEventListener(\"beforeunload\", () => globe.destroy());\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2881bbc elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2881bbc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ffa2e89\" data-id=\"ffa2e89\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1ddbb68 elementor-widget elementor-widget-heading\" data-id=\"1ddbb68\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Do not delete html code below part of globe <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-688d351 elementor-widget elementor-widget-html\" data-id=\"688d351\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- OAR Student Population Globe (COBE via CDN, no React) -->\n<div class=\"oar-globe-wrap\" role=\"img\" aria-label=\"Student population map globe\">\n  <div class=\"oar-globe-label\">\n    <div class=\"oar-globe-pill\">Student Population Map<\/div>\n    <div class=\"oar-globe-hint\">Hover to pause \u2022 Drag to rotate<\/div>\n  <\/div>\n\n  <canvas id=\"oarStudentGlobe\" class=\"oar-globe-canvas\"><\/canvas>\n<\/div>\n\n<style>\n  .oar-globe-wrap{\n    position: relative;\n    width: 100%;\n    max-width: 520px;      \/* adjust if you want bigger\/smaller *\/\n    aspect-ratio: 1 \/ 1;\n    margin-left: auto;     \/* keeps it on the right in a two-col layout *\/\n    border-radius: 999px;\n    overflow: hidden;\n    \/* IMPORTANT: keep background minimal (no big \u201cblob\u201d) *\/\n    background: transparent;\n  }\n\n  .oar-globe-label{\n    position: absolute;\n    left: 18px;\n    top: 18px;\n    z-index: 3;\n    pointer-events: none;\n  }\n\n  .oar-globe-pill{\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 8px 12px;\n    border-radius: 999px;\n    background: rgba(255,255,255,.70);\n    border: 1px solid rgba(0,74,173,.18);\n    color: #02275A;\n    font-weight: 800;\n    font-size: 12px;\n    letter-spacing: .01em;\n    box-shadow: 0 10px 24px rgba(2,39,90,.10);\n    backdrop-filter: blur(10px);\n    -webkit-backdrop-filter: blur(10px);\n  }\n\n  .oar-globe-hint{\n    margin-top: 8px;\n    font-size: 12px;\n    color: rgba(53,58,60,.72);\n    text-shadow: 0 1px 0 rgba(255,255,255,.65);\n  }\n\n  .oar-globe-canvas{\n    width: 100%;\n    height: 100%;\n    display: block;\n    cursor: grab;\n    opacity: 0;\n    transition: opacity .35s ease;\n  }\n  .oar-globe-canvas.is-ready{ opacity: 1; }\n  .oar-globe-canvas.is-dragging{ cursor: grabbing; }\n\n  \/* Mobile: keep it from dominating *\/\n  @media (max-width: 900px){\n    .oar-globe-wrap{ max-width: 380px; margin: 22px auto 0; }\n    .oar-globe-label{ left: 14px; top: 14px; }\n  }\n<\/style>\n\n<script type=\"module\">\n  import createGlobe from \"https:\/\/esm.sh\/cobe@0.6.3\";\n\n  const canvas = document.getElementById(\"oarStudentGlobe\");\n  if (!canvas) throw new Error(\"Globe canvas not found\");\n\n  const reduceMotion = window.matchMedia?.(\"(prefers-reduced-motion: reduce)\")?.matches;\n\n  \/\/ --- Markers (lat, lon) ---\n  \/\/ Countries (mostly capital coords; good enough for \u201corigin map\u201d dots)\n  const countryMarkers = [\n    [\"ARUBA\", 12.52, -70.04, 0.07],\n    [\"BAHAMAS\", 25.03, -77.40, 0.07],\n    [\"BARBADOS\", 13.10, -59.62, 0.07],\n    [\"BERMUDA\", 32.30, -64.78, 0.07],\n    [\"BRAZIL\", -15.79, -47.88, 0.09],\n    [\"BURMA\", 19.75, 96.10, 0.08],\n    [\"CAMEROON\", 3.85, 11.52, 0.08],\n    [\"CANADA\", 45.42, -75.70, 0.08],\n    [\"CHINA\", 39.90, 116.40, 0.09],\n    [\"EGYPT\", 30.04, 31.24, 0.08],\n    [\"FRANCE\", 48.86, 2.35, 0.08],\n    [\"GERMANY\", 52.52, 13.40, 0.08],\n    [\"GHANA\", 5.56, -0.20, 0.08],\n    [\"GREECE\", 37.98, 23.72, 0.08],\n    [\"GUYANA\", 6.80, -58.16, 0.08],\n    [\"HONDURAS\", 14.07, -87.20, 0.08],\n    [\"HONG KONG\", 22.32, 114.17, 0.07],\n    [\"INDIA\", 28.61, 77.21, 0.09],\n    [\"IRELAND\", 53.35, -6.26, 0.08],\n    [\"JAMAICA\", 18.02, -76.80, 0.08],\n    [\"JAPAN\", 35.68, 139.76, 0.08],\n    [\"KENYA\", -1.29, 36.82, 0.08],\n    [\"KUWAIT\", 29.38, 47.98, 0.08],\n    [\"MONACO\", 43.74, 7.42, 0.06],\n    [\"POLAND\", 52.23, 21.01, 0.08],\n    [\"RUSSIA\", 55.75, 37.62, 0.08],\n    [\"SERBIA\", 44.81, 20.46, 0.08],\n    [\"SPAIN\", 40.42, -3.70, 0.08],\n    [\"SRI LANKA\", 6.93, 79.86, 0.08],\n    [\"SWITZERLAND\", 46.95, 7.45, 0.07],\n    [\"TURKEY\", 39.93, 32.85, 0.08],\n    [\"UNITED KINGDOM\", 51.51, -0.13, 0.08],\n    [\"ZIMBABWE\", -17.83, 31.05, 0.08]\n  ];\n\n  \/\/ US + territories (state capitals \/ main city proxy)\n  const stateMarkers = [\n    [\"ALABAMA\", 32.37, -86.30, 0.05],\n    [\"ALASKA\", 58.30, -134.42, 0.05],\n    [\"ARIZONA\", 33.45, -112.07, 0.05],\n    [\"ARKANSAS\", 34.75, -92.29, 0.05],\n    [\"CALIFORNIA\", 38.58, -121.49, 0.05],\n    [\"COLORADO\", 39.74, -104.99, 0.05],\n    [\"CONNECTICUT\", 41.76, -72.67, 0.05],\n    [\"DELAWARE\", 39.16, -75.52, 0.05],\n    [\"DISTRICT OF COLUMBIA\", 38.90, -77.04, 0.05],\n    [\"FLORIDA\", 30.44, -84.28, 0.05],\n    [\"GEORGIA\", 33.75, -84.39, 0.05],\n    [\"HAWAII\", 21.31, -157.86, 0.05],\n    [\"ILLINOIS\", 39.80, -89.65, 0.05],\n    [\"INDIANA\", 39.77, -86.16, 0.05],\n    [\"IOWA\", 41.59, -93.62, 0.05],\n    [\"KANSAS\", 39.05, -95.68, 0.05],\n    [\"KENTUCKY\", 38.20, -84.87, 0.05],\n    [\"LOUISIANA\", 30.45, -91.14, 0.05],\n    [\"MARYLAND\", 38.98, -76.49, 0.05],\n    [\"MASSACHUSETTS\", 42.36, -71.06, 0.05],\n    [\"MICHIGAN\", 42.73, -84.55, 0.05],\n    [\"MINNESOTA\", 44.95, -93.09, 0.05],\n    [\"MISSISSIPPI\", 32.30, -90.18, 0.05],\n    [\"MISSOURI\", 38.58, -92.17, 0.05],\n    [\"NEBRASKA\", 40.81, -96.68, 0.05],\n    [\"NEVADA\", 39.16, -119.77, 0.05],\n    [\"NEW HAMPSHIRE\", 43.21, -71.54, 0.05],\n    [\"NEW JERSEY\", 40.22, -74.76, 0.05],\n    [\"NEW MEXICO\", 35.69, -105.94, 0.05],\n    [\"NEW YORK\", 42.65, -73.75, 0.05],\n    [\"NORTH CAROLINA\", 35.78, -78.64, 0.05],\n    [\"OHIO\", 39.96, -83.00, 0.05],\n    [\"OKLAHOMA\", 35.47, -97.52, 0.05],\n    [\"OREGON\", 44.94, -123.03, 0.05],\n    [\"PENNSYLVANIA\", 40.27, -76.88, 0.05],\n    [\"PUERTO RICO\", 18.47, -66.11, 0.05],\n    [\"RHODE ISLAND\", 41.82, -71.41, 0.05],\n    [\"SOUTH CAROLINA\", 34.00, -81.03, 0.05],\n    [\"SOUTH DAKOTA\", 44.37, -100.35, 0.05],\n    [\"TENNESSEE\", 36.16, -86.78, 0.05],\n    [\"TEXAS\", 30.27, -97.74, 0.05],\n    [\"UTAH\", 40.76, -111.89, 0.05],\n    [\"VIRGIN ISLANDS\", 18.34, -64.93, 0.05],\n    [\"VIRGINIA\", 37.54, -77.43, 0.05],\n    [\"WASHINGTON\", 47.04, -122.90, 0.05],\n    [\"WEST VIRGINIA\", 38.35, -81.63, 0.05],\n    [\"WISCONSIN\", 43.07, -89.40, 0.05],\n  ];\n\n  \/\/ COBE markers format: { location: [lat, lon], size }\n  \/\/ NOTE: COBE supports only one markerColor per globe; we differentiate by size.\n  const markers = [\n    ...countryMarkers.map(([,lat,lon,size]) => ({ location: [lat, lon], size })),\n    ...stateMarkers.map(([,lat,lon,size]) => ({ location: [lat, lon], size }))\n  ];\n\n  \/\/ --- Interaction (hover pause + drag rotate) ---\n  let width = 0;\n  let phi = 0;\n  let isHovering = false;\n\n  let pointerDown = false;\n  let lastX = 0;\n  let dragOffset = 0;  \/\/ accumulated rotation offset\n\n  const onResize = () => {\n    width = canvas.offsetWidth || 520;\n    canvas.width = Math.floor(width * 2);\n    canvas.height = Math.floor(width * 2);\n  };\n\n  const setDraggingClass = (v) => {\n    canvas.classList.toggle(\"is-dragging\", v);\n  };\n\n  canvas.addEventListener(\"mouseenter\", () => { isHovering = true; });\n  canvas.addEventListener(\"mouseleave\", () => { isHovering = false; });\n\n  canvas.addEventListener(\"pointerdown\", (e) => {\n    pointerDown = true;\n    lastX = e.clientX;\n    canvas.setPointerCapture(e.pointerId);\n    setDraggingClass(true);\n  });\n\n  canvas.addEventListener(\"pointerup\", () => {\n    pointerDown = false;\n    setDraggingClass(false);\n  });\n\n  canvas.addEventListener(\"pointercancel\", () => {\n    pointerDown = false;\n    setDraggingClass(false);\n  });\n\n  canvas.addEventListener(\"pointermove\", (e) => {\n    if (!pointerDown) return;\n    const dx = e.clientX - lastX;\n    lastX = e.clientX;\n    \/\/ tweak sensitivity here:\n    dragOffset += dx \/ 250;\n  });\n\n  onResize();\n  window.addEventListener(\"resize\", onResize);\n\n  const globe = createGlobe(canvas, {\n    devicePixelRatio: 2,\n    width: canvas.width,\n    height: canvas.height,\n\n    \/\/ Visuals (clean, matches your hero)\n    dark: 0,\n    diffuse: 0.35,\n    mapSamples: 16000,\n    mapBrightness: 1.2,\n\n    baseColor: [0.98, 0.99, 1.0],\n    glowColor: [0.92, 0.96, 1.0],\n\n    \/\/ Hampton-blue markers\n    markerColor: [0 \/ 255, 74 \/ 255, 173 \/ 255],\n\n    theta: 0.30,\n    phi: 0,\n\n    markers,\n\n    onRender: (state) => {\n      \/\/ keep size synced\n      state.width = canvas.width;\n      state.height = canvas.height;\n\n      \/\/ rotation rules:\n      \/\/ - hover pauses\n      \/\/ - dragging always works\n      if (!reduceMotion && !isHovering && !pointerDown) phi += 0.005;\n\n      state.phi = phi + dragOffset;\n    }\n  });\n\n  \/\/ show once initialized\n  canvas.classList.add(\"is-ready\");\n\n  \/\/ cleanup if Elementor re-renders\n  window.addEventListener(\"beforeunload\", () => globe.destroy());\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>HAMPTON UNIVERSITY \u2022 OPERATIONS ANALYSIS &amp; RESEARCH Institutional Data &amp; Insights Dashboards, reporting, and analysis supporting strategic planning, institutional effectiveness, and student success. View Dashboards \u2192 Request Data \u2192 Data as of: Fall 2025 Census Student Population Map Hover to pause \u2022 Drag to rotate 0 ENROLLED STUDENTS 0 PROGRAMS OFFERED 0% OVERALL RETENTION RATE [&hellip;]<\/p>\n","protected":false},"author":147,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1759","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Landing Page - New 2\/27\/26 - Operations Analysis and Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/home.hamptonu.edu\/oar\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Landing Page - New 2\/27\/26 - Operations Analysis and Research\" \/>\n<meta property=\"og:description\" content=\"HAMPTON UNIVERSITY \u2022 OPERATIONS ANALYSIS &amp; RESEARCH Institutional Data &amp; Insights Dashboards, reporting, and analysis supporting strategic planning, institutional effectiveness, and student success. View Dashboards \u2192 Request Data \u2192 Data as of: Fall 2025 Census Student Population Map Hover to pause \u2022 Drag to rotate 0 ENROLLED STUDENTS 0 PROGRAMS OFFERED 0% OVERALL RETENTION RATE [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/home.hamptonu.edu\/oar\/\" \/>\n<meta property=\"og:site_name\" content=\"Operations Analysis and Research\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-03T18:29:01+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/\",\"url\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/\",\"name\":\"Landing Page - New 2\\\/27\\\/26 - Operations Analysis and Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#website\"},\"datePublished\":\"2026-02-27T16:12:55+00:00\",\"dateModified\":\"2026-03-03T18:29:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Landing Page &#8211; New 2\\\/27\\\/26\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#website\",\"url\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/\",\"name\":\"Operations Analysis and Research\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#organization\",\"name\":\"Operations Analysis and Research\",\"url\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/wp-content\\\/uploads\\\/sites\\\/101\\\/2025\\\/03\\\/HU-Logo-icon-big.webp\",\"contentUrl\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/wp-content\\\/uploads\\\/sites\\\/101\\\/2025\\\/03\\\/HU-Logo-icon-big.webp\",\"width\":379,\"height\":198,\"caption\":\"Operations Analysis and Research\"},\"image\":{\"@id\":\"https:\\\/\\\/home.hamptonu.edu\\\/oar\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Landing Page - New 2\/27\/26 - Operations Analysis and Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/home.hamptonu.edu\/oar\/","og_locale":"en_US","og_type":"article","og_title":"Landing Page - New 2\/27\/26 - Operations Analysis and Research","og_description":"HAMPTON UNIVERSITY \u2022 OPERATIONS ANALYSIS &amp; RESEARCH Institutional Data &amp; Insights Dashboards, reporting, and analysis supporting strategic planning, institutional effectiveness, and student success. View Dashboards \u2192 Request Data \u2192 Data as of: Fall 2025 Census Student Population Map Hover to pause \u2022 Drag to rotate 0 ENROLLED STUDENTS 0 PROGRAMS OFFERED 0% OVERALL RETENTION RATE [&hellip;]","og_url":"https:\/\/home.hamptonu.edu\/oar\/","og_site_name":"Operations Analysis and Research","article_modified_time":"2026-03-03T18:29:01+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/home.hamptonu.edu\/oar\/","url":"https:\/\/home.hamptonu.edu\/oar\/","name":"Landing Page - New 2\/27\/26 - Operations Analysis and Research","isPartOf":{"@id":"https:\/\/home.hamptonu.edu\/oar\/#website"},"datePublished":"2026-02-27T16:12:55+00:00","dateModified":"2026-03-03T18:29:01+00:00","breadcrumb":{"@id":"https:\/\/home.hamptonu.edu\/oar\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/home.hamptonu.edu\/oar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/home.hamptonu.edu\/oar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/home.hamptonu.edu\/oar\/"},{"@type":"ListItem","position":2,"name":"Landing Page &#8211; New 2\/27\/26"}]},{"@type":"WebSite","@id":"https:\/\/home.hamptonu.edu\/oar\/#website","url":"https:\/\/home.hamptonu.edu\/oar\/","name":"Operations Analysis and Research","description":"","publisher":{"@id":"https:\/\/home.hamptonu.edu\/oar\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/home.hamptonu.edu\/oar\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/home.hamptonu.edu\/oar\/#organization","name":"Operations Analysis and Research","url":"https:\/\/home.hamptonu.edu\/oar\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/home.hamptonu.edu\/oar\/#\/schema\/logo\/image\/","url":"https:\/\/home.hamptonu.edu\/oar\/wp-content\/uploads\/sites\/101\/2025\/03\/HU-Logo-icon-big.webp","contentUrl":"https:\/\/home.hamptonu.edu\/oar\/wp-content\/uploads\/sites\/101\/2025\/03\/HU-Logo-icon-big.webp","width":379,"height":198,"caption":"Operations Analysis and Research"},"image":{"@id":"https:\/\/home.hamptonu.edu\/oar\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/pages\/1759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/users\/147"}],"replies":[{"embeddable":true,"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/comments?post=1759"}],"version-history":[{"count":46,"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/pages\/1759\/revisions"}],"predecessor-version":[{"id":1825,"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/pages\/1759\/revisions\/1825"}],"wp:attachment":[{"href":"https:\/\/home.hamptonu.edu\/oar\/wp-json\/wp\/v2\/media?parent=1759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}