{"id":62,"date":"2026-03-21T14:18:48","date_gmt":"2026-03-21T14:18:48","guid":{"rendered":"https:\/\/3q9527.xyz\/?page_id=62"},"modified":"2026-04-02T06:02:24","modified_gmt":"2026-04-02T06:02:24","slug":"elementor-62","status":"publish","type":"page","link":"https:\/\/3q9527.xyz\/icho2027v1\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"62\" class=\"elementor elementor-62\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0139678 elementor-section-height-full elementor-section-full_width elementor-section-height-default elementor-section-items-middle\" data-id=\"0139678\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/3q9527.xyz\\\/icho2027v1\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/101_building_lights_202603282141.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\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-100 elementor-top-column elementor-element elementor-element-6a16874\" data-id=\"6a16874\" data-element_type=\"column\" data-e-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-9ca9beb elementor-widget elementor-widget-heading\" data-id=\"9ca9beb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">59th International\nChemistry Olympiad<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1826ee3 e-flex e-con-boxed e-con e-parent\" data-id=\"1826ee3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-64415bb e-con-full e-flex e-con e-child\" data-id=\"64415bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-92c05fe elementor-widget__width-initial elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"92c05fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-calendar-alt\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ebc134 elementor-widget elementor-widget-heading\" data-id=\"7ebc134\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">10\u201319 July 2027<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9a7ba05 e-con-full e-flex e-con e-child\" data-id=\"9a7ba05\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2874486 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"2874486\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-map-marker-alt\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ee745e elementor-widget elementor-widget-heading\" data-id=\"4ee745e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Hosted in Taipei, Taiwan<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-88ab6ac e-con-full e-flex e-con e-child\" data-id=\"88ab6ac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cefe1e2 elementor-widget__width-initial elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"cefe1e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-user-friends\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5442a3d elementor-widget elementor-widget-heading\" data-id=\"5442a3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">90+ Countries Represented<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2bbfbb9 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"2bbfbb9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">\u272859th International Chemistry Olympiad \u2013 A Global Celebration of Science<\/h5>\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<div class=\"elementor-element elementor-element-30d8add e-con-full e-flex e-con e-parent\" data-id=\"30d8add\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc50d67 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"bc50d67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\n     IChO 2027 Countdown \u2013 Interactive Electron Animation\n     \u8cbc\u5230 WordPress \u7684 Custom HTML \u5340\u584a\u5373\u53ef\n     ============================================================ -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Grotesk:wght@300;400;600;700&display=swap\" rel=\"stylesheet\">\n\n<style>\n#icho-wrap {\n  position: relative;\n  width: 100%;\n  min-height: 440px;\n  background: #050d1a;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 3rem 1rem;\n  font-family: 'Space Grotesk', sans-serif;\n  cursor: crosshair;\n}\n#icho-canvas {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  pointer-events: none;\n}\n.icho-cd-head {\n  position: relative;\n  z-index: 2;\n  text-align: center;\n  margin-bottom: 2rem;\n}\n.icho-cd-head p {\n  font-size: 12px;\n  font-weight: 400;\n  letter-spacing: 0.28em;\n  color: rgba(100,210,255,0.65);\n  text-transform: uppercase;\n  margin-bottom: 6px;\n}\n.icho-cd-head h2 {\n  font-size: clamp(18px, 3.5vw, 32px);\n  font-weight: 700;\n  color: #fff;\n  letter-spacing: 0.03em;\n  margin: 0;\n}\n.icho-cd-row {\n  position: relative;\n  z-index: 2;\n  display: flex;\n  gap: 12px;\n  flex-wrap: wrap;\n  justify-content: center;\n  align-items: flex-start;\n}\n.icho-cd-unit {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 6px;\n  min-width: 86px;\n}\n.icho-cd-formula {\n  font-size: 11px;\n  letter-spacing: 0.14em;\n  color: rgba(80,200,255,0.6);\n\n}\n.icho-cd-num {\n  font-size: clamp(36px, 6.5vw, 62px);\n  font-weight: 700;\n  color: #fff;\n  line-height: 1;\n  font-variant-numeric: tabular-nums;\n  text-shadow: 0 0 28px rgba(60,170,255,0.55);\n}\n.icho-cd-lbl {\n  font-size: 10px;\n  letter-spacing: 0.22em;\n  color: rgba(255,255,255,0.3);\n  text-transform: uppercase;\n}\n.icho-cd-sep {\n  font-size: 38px;\n  font-weight: 300;\n  color: rgba(255,255,255,0.18);\n  line-height: 1;\n  padding-top: 20px;\n}\n.icho-cd-foot {\n  position: relative;\n  z-index: 2;\n  margin-top: 2rem;\n  font-size: 11px;\n  color: rgba(255,255,255,0.25);\n  letter-spacing: 0.14em;\n}\n.icho-cd-hint {\n  position: relative;\n  z-index: 2;\n  margin-top: 0.75rem;\n  font-size: 10px;\n  color: rgba(80,200,255,0.35);\n  letter-spacing: 0.12em;\n}\n<\/style>\n\n<div id=\"icho-wrap\">\n  <canvas id=\"icho-canvas\"><\/canvas>\n\n  <div class=\"icho-cd-head\">\n    <p>IChO 2027 \u00b7 Taipei, Taiwan<\/p>\n    <h2>59th International Chemistry Olympiad<\/h2>\n  <\/div>\n\n  <div class=\"icho-cd-row\">\n    <div class=\"icho-cd-unit\">\n      <span class=\"icho-cd-formula\">H\u2082O<\/span>\n      <span class=\"icho-cd-num\" id=\"icho-days\">---<\/span>\n      <span class=\"icho-cd-lbl\">Days<\/span>\n    <\/div>\n    <span class=\"icho-cd-sep\">:<\/span>\n    <div class=\"icho-cd-unit\">\n      <span class=\"icho-cd-formula\">CO\u2082<\/span>\n      <span class=\"icho-cd-num\" id=\"icho-hours\">--<\/span>\n      <span class=\"icho-cd-lbl\">Hours<\/span>\n    <\/div>\n    <span class=\"icho-cd-sep\">:<\/span>\n    <div class=\"icho-cd-unit\">\n      <span class=\"icho-cd-formula\">NaCl<\/span>\n      <span class=\"icho-cd-num\" id=\"icho-mins\">--<\/span>\n      <span class=\"icho-cd-lbl\">Minutes<\/span>\n    <\/div>\n    <span class=\"icho-cd-sep\">:<\/span>\n    <div class=\"icho-cd-unit\">\n      <span class=\"icho-cd-formula\">C\u2086H\u2081\u2082O\u2086<\/span>\n      <span class=\"icho-cd-num\" id=\"icho-secs\">--<\/span>\n      <span class=\"icho-cd-lbl\">Seconds<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"icho-cd-foot\">10 \u2013 19 July 2027 \u00b7 Taipei<\/div>\n  <div class=\"icho-cd-hint\">move cursor to disturb the electrons<\/div>\n<\/div>\n\n<script>\n(function () {\n\n  \/* \u2500\u2500 Countdown \u2500\u2500 *\/\n  var target = new Date('2027-07-10T00:00:00+08:00');\n  function tick() {\n    var diff = Math.max(0, target - new Date());\n    var d = Math.floor(diff \/ 86400000);\n    var h = Math.floor((diff % 86400000) \/ 3600000);\n    var m = Math.floor((diff % 3600000) \/ 60000);\n    var s = Math.floor((diff % 60000) \/ 1000);\n    document.getElementById('icho-days').textContent  = String(d).padStart(3, '0');\n    document.getElementById('icho-hours').textContent = String(h).padStart(2, '0');\n    document.getElementById('icho-mins').textContent  = String(m).padStart(2, '0');\n    document.getElementById('icho-secs').textContent  = String(s).padStart(2, '0');\n  }\n  tick();\n  setInterval(tick, 1000);\n\n  \/* \u2500\u2500 Canvas setup \u2500\u2500 *\/\n  var canvas = document.getElementById('icho-canvas');\n  var ctx    = canvas.getContext('2d');\n  var wrap   = document.getElementById('icho-wrap');\n\n  var mouse = { x: -9999, y: -9999 };\n  wrap.addEventListener('mousemove', function (e) {\n    var r = canvas.getBoundingClientRect();\n    mouse.x = e.clientX - r.left;\n    mouse.y = e.clientY - r.top;\n  });\n  wrap.addEventListener('mouseleave', function () {\n    mouse.x = -9999;\n    mouse.y = -9999;\n  });\n\n  \/* touch support *\/\n  wrap.addEventListener('touchmove', function (e) {\n    e.preventDefault();\n    var r = canvas.getBoundingClientRect();\n    mouse.x = e.touches[0].clientX - r.left;\n    mouse.y = e.touches[0].clientY - r.top;\n  }, { passive: false });\n  wrap.addEventListener('touchend', function () {\n    mouse.x = -9999; mouse.y = -9999;\n  });\n\n  var BLUE = 'rgba(56,185,255,';\n  var TEAL = 'rgba(50,225,185,';\n  var GOLD = 'rgba(255,210,80,';\n\n  var REPEL_RADIUS = 110;\n  var REPEL_FORCE  = 3.5;\n  var BOND_DIST    = 140;\n\n  function rand(a, b) { return a + Math.random() * (b - a); }\n\n  \/* \u2500\u2500 Atoms \u2500\u2500 *\/\n  var atoms = [];\n\n  function buildAtoms() {\n    var W = canvas.width, H = canvas.height;\n    atoms = [];\n    for (var i = 0; i < 9; i++) {\n      var col = Math.random() < 0.55 ? BLUE : (Math.random() < 0.5 ? TEAL : GOLD);\n      var a = {\n        x:   rand(0.05, 0.95) * W,\n        y:   rand(0.08, 0.92) * H,\n        vx:  rand(-0.28, 0.28),\n        vy:  rand(-0.28, 0.28),\n        r:   rand(4, 9),\n        col: col,\n        electrons: []\n      };\n      var nShells = Math.floor(rand(1, 3));\n      for (var s = 0; s < nShells; s++) {\n        var orb  = rand(18, 52);\n        var ne   = Math.floor(rand(2, 5));\n        var tilt = rand(-0.7, 0.7);\n        for (var e = 0; e < ne; e++) {\n          a.electrons.push({\n            orb:       orb,\n            baseAngle: rand(0, Math.PI * 2),\n            speed:     rand(0.012, 0.028) * (Math.random() < 0.5 ? 1 : -1),\n            tilt:      tilt,\n            px: 0, py: 0,\n            pvx: 0, pvy: 0,\n            col: col\n          });\n        }\n      }\n      atoms.push(a);\n    }\n  }\n\n  function resize() {\n    canvas.width  = wrap.offsetWidth;\n    canvas.height = wrap.offsetHeight;\n    buildAtoms();\n  }\n  resize();\n  window.addEventListener('resize', resize);\n\n  \/* \u2500\u2500 Sparkle particles \u2500\u2500 *\/\n  var sparks = [];\n  for (var i = 0; i < 35; i++) {\n    sparks.push({\n      x: Math.random(), y: Math.random(),\n      vx: rand(-0.0003, 0.0003),\n      vy: rand(-0.0003, 0.0003),\n      r:  rand(0.7, 1.8),\n      alpha: rand(0.15, 0.5)\n    });\n  }\n\n  \/* \u2500\u2500 Hexagon corner decorations \u2500\u2500 *\/\n  var hexPos = [\n    [0.07, 0.11], [0.31, 0.06], [0.63, 0.07], [0.88, 0.10],\n    [0.07, 0.89], [0.31, 0.93], [0.63, 0.90], [0.88, 0.88]\n  ];\n\n  \/* \u2500\u2500 Floating formula labels \u2500\u2500 *\/\n  var FMLS = ['H\u2082O', 'CO\u2082', 'NaCl', 'O\u2082', 'N\u2082', 'CH\u2084', 'NH\u2083', 'HCl', 'C\u2082H\u2085OH'];\n  var floats = [];\n  for (var i = 0; i < 6; i++) {\n    floats.push({\n      x:    rand(0.05, 0.9),\n      y:    rand(0.05, 0.9),\n      text: FMLS[Math.floor(rand(0, FMLS.length))],\n      vx:   rand(-0.00007, 0.00007),\n      vy:   rand(-0.00007, 0.00007),\n      alpha: rand(0.05, 0.13)\n    });\n  }\n\n  \/* \u2500\u2500 Main render loop \u2500\u2500 *\/\n  var lastT = 0;\n\n  function frame(ts) {\n    var dt = Math.min(ts - lastT, 32);\n    lastT = ts;\n    var W = canvas.width, H = canvas.height;\n\n    ctx.clearRect(0, 0, W, H);\n    ctx.fillStyle = '#050d1a';\n    ctx.fillRect(0, 0, W, H);\n\n    \/* sparkles *\/\n    for (var i = 0; i < sparks.length; i++) {\n      var p = sparks[i];\n      p.x += p.vx; p.y += p.vy;\n      if (p.x < 0) p.x = 1; if (p.x > 1) p.x = 0;\n      if (p.y < 0) p.y = 1; if (p.y > 1) p.y = 0;\n      ctx.beginPath();\n      ctx.arc(p.x * W, p.y * H, p.r, 0, Math.PI * 2);\n      ctx.fillStyle = 'rgba(255,255,255,' + p.alpha + ')';\n      ctx.fill();\n    }\n\n    \/* bonds *\/\n    for (var i = 0; i < atoms.length - 1; i++) {\n      for (var j = i + 1; j < atoms.length; j++) {\n        var ai = atoms[i], aj = atoms[j];\n        var dx = ai.x - aj.x, dy = ai.y - aj.y;\n        var d  = Math.sqrt(dx * dx + dy * dy);\n        if (d < BOND_DIST) {\n          var al = (1 - d \/ BOND_DIST) * 0.28;\n          ctx.beginPath();\n          ctx.moveTo(ai.x, ai.y);\n          ctx.lineTo(aj.x, aj.y);\n          ctx.strokeStyle = BLUE + al + ')';\n          ctx.lineWidth   = 0.7;\n          ctx.stroke();\n        }\n      }\n    }\n\n    \/* hexagons *\/\n    for (var i = 0; i < hexPos.length; i++) {\n      ctx.save();\n      ctx.translate(hexPos[i][0] * W, hexPos[i][1] * H);\n      ctx.beginPath();\n      for (var k = 0; k < 6; k++) {\n        var ang = (Math.PI \/ 3) * k - Math.PI \/ 6;\n        k === 0\n          ? ctx.moveTo(18 * Math.cos(ang), 18 * Math.sin(ang))\n          : ctx.lineTo(18 * Math.cos(ang), 18 * Math.sin(ang));\n      }\n      ctx.closePath();\n      ctx.strokeStyle = TEAL + '0.09)';\n      ctx.lineWidth   = 0.8;\n      ctx.stroke();\n      ctx.restore();\n    }\n\n    \/* atoms + electrons *\/\n    for (var i = 0; i < atoms.length; i++) {\n      var a = atoms[i];\n\n      \/* drift *\/\n      a.vx *= 0.995; a.vy *= 0.995;\n      a.x  += a.vx;  a.y  += a.vy;\n      if (a.x < a.r)     { a.x = a.r;     a.vx =  Math.abs(a.vx); }\n      if (a.x > W - a.r) { a.x = W - a.r; a.vx = -Math.abs(a.vx); }\n      if (a.y < a.r)     { a.y = a.r;     a.vy =  Math.abs(a.vy); }\n      if (a.y > H - a.r) { a.y = H - a.r; a.vy = -Math.abs(a.vy); }\n\n      \/* nucleus *\/\n      ctx.beginPath();\n      ctx.arc(a.x, a.y, a.r, 0, Math.PI * 2);\n      ctx.fillStyle = a.col + '0.92)';\n      ctx.fill();\n\n      ctx.beginPath();\n      ctx.arc(a.x, a.y, a.r + 2.5, 0, Math.PI * 2);\n      ctx.strokeStyle = a.col + '0.22)';\n      ctx.lineWidth   = 1;\n      ctx.stroke();\n\n      \/* electrons *\/\n      for (var e = 0; e < a.electrons.length; e++) {\n        var el = a.electrons[e];\n        el.baseAngle += el.speed;\n\n        \/* ideal position on orbit ellipse *\/\n        var ex0 = a.x + Math.cos(el.baseAngle) * el.orb;\n        var ey0 = a.y\n                + Math.sin(el.baseAngle) * el.orb * 0.38 * Math.cos(el.tilt)\n                - Math.sin(el.tilt) * Math.sin(el.baseAngle) * el.orb;\n\n        \/* mouse repulsion *\/\n        var mdx = ex0 - mouse.x, mdy = ey0 - mouse.y;\n        var md  = Math.sqrt(mdx * mdx + mdy * mdy);\n        if (md < REPEL_RADIUS && md > 0) {\n          var force = REPEL_FORCE * (1 - md \/ REPEL_RADIUS);\n          el.pvx += (mdx \/ md) * force;\n          el.pvy += (mdy \/ md) * force;\n        }\n        el.pvx *= 0.84;\n        el.pvy *= 0.84;\n\n        var finalX = ex0 + el.pvx;\n        var finalY = ey0 + el.pvy;\n\n        \/* orbit ellipse *\/\n        ctx.save();\n        ctx.translate(a.x, a.y);\n        ctx.rotate(el.tilt);\n        ctx.scale(1, 0.38);\n        ctx.beginPath();\n        ctx.arc(0, 0, el.orb, 0, Math.PI * 2);\n        ctx.strokeStyle = el.col + '0.14)';\n        ctx.lineWidth   = 0.7;\n        ctx.stroke();\n        ctx.restore();\n\n        \/* electron dot \u2013 glows gold when disturbed *\/\n        var glow = md < REPEL_RADIUS ? Math.min(1, (1 - md \/ REPEL_RADIUS) * 2) : 0;\n        var disturbed = Math.sqrt(el.pvx * el.pvx + el.pvy * el.pvy) > 0.3;\n\n        ctx.beginPath();\n        ctx.arc(finalX, finalY, 2.2, 0, Math.PI * 2);\n        ctx.fillStyle = disturbed ? 'rgba(255,240,100,0.95)' : el.col + '0.92)';\n        ctx.fill();\n\n        if (glow > 0.1) {\n          ctx.beginPath();\n          ctx.arc(finalX, finalY, 5, 0, Math.PI * 2);\n          ctx.fillStyle = 'rgba(255,230,80,' + (glow * 0.22) + ')';\n          ctx.fill();\n        }\n      }\n    }\n\n    \/* floating formula labels *\/\n    ctx.font = '600 14px \"Space Grotesk\", monospace';\n    for (var i = 0; i < floats.length; i++) {\n      var lb = floats[i];\n      lb.x += lb.vx; lb.y += lb.vy;\n      if (lb.x < 0.03 || lb.x > 0.93) lb.vx *= -1;\n      if (lb.y < 0.03 || lb.y > 0.97) lb.vy *= -1;\n      ctx.fillStyle = BLUE + lb.alpha + ')';\n      ctx.fillText(lb.text, lb.x * W, lb.y * H);\n    }\n\n    requestAnimationFrame(frame);\n  }\n\n  requestAnimationFrame(frame);\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>59th International Chemistry Olympiad 10\u201319 July 2027 Hosted in Taipei, Taiwan 90+ Countries Represented \u272859th International Chemistry Olympiad \u2013 A Global Celebration of Science IChO 2027 \u00b7 Taipei, Taiwan 59th International Chemistry Olympiad H\u2082O &#8212; Days : CO\u2082 &#8212; Hours : NaCl &#8212; Minutes : C\u2086H\u2081\u2082O\u2086 &#8212; Seconds 10 \u2013 19 July 2027 \u00b7 Taipei [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-62","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/pages\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":311,"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/pages\/62\/revisions"}],"predecessor-version":[{"id":875,"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/pages\/62\/revisions\/875"}],"wp:attachment":[{"href":"https:\/\/3q9527.xyz\/icho2027v1\/wp-json\/wp\/v2\/media?parent=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}