showcase / index.html
harshGenzeonPlatforms's picture
Update index.html
741b1af verified
Raw
History Blame Contribute Delete
23.3 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Genzeon Platforms β€” Clinical text, structured</title>
<link rel="icon" type="image/png" href="platforms.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
:root{
--paper:#F7F9FB; --panel:#FFFFFF;
--ink:#0F1C28; --ink-2:#42555F; --ink-3:#7C8A93;
--line:#E4EAEE;
--brand:#2858F0; --brand-ink:#0F1742; --brand-hover:#1E48D8;
--ent-med:#6D4AE0; --ent-med-bg:rgba(109,74,224,.12);
--ent-lab:#0E9E8C; --ent-lab-bg:rgba(14,158,140,.14);
--ent-dx:#CE7A20; --ent-dx-bg:rgba(206,122,32,.16);
--ent-icd:#A85C0A; --ent-icd-bg:rgba(168,92,10,.14);
--ent-clin:#C81D77; --ent-clin-bg:rgba(200,29,119,.12);
--ent-vit:#DC2626; --ent-vit-bg:rgba(220,38,38,.11);
--ent-phi:#64748B; --ent-phi-bg:rgba(100,116,139,.15);
--sans:"IBM Plex Sans",system-ui,sans-serif;
--disp:"Archivo",system-ui,sans-serif;
--mono:"IBM Plex Mono",ui-monospace,monospace;
--wrap:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
background:var(--paper); color:var(--ink);
font-family:var(--sans); font-size:17px; line-height:1.6;
-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.mono{font-family:var(--mono)}
/* ---- top bar ---- */
.top{position:sticky;top:0;z-index:50;background:rgba(247,249,251,.82);
backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--disp);
font-weight:800;letter-spacing:-.02em;font-size:18px}
.mark-img{width:30px;height:30px;flex:none;display:block}
.foot-logo{width:238px;max-width:62vw;height:auto;display:block;margin-bottom:22px}
.navlinks{display:flex;gap:26px;align-items:center}
.navlinks a{font-size:14.5px;color:var(--ink-2);font-weight:500}
.navlinks a:hover{color:var(--ink)}
.hf-pill{border:1px solid var(--line);background:var(--panel);
padding:7px 13px;border-radius:999px;font-size:13.5px;font-weight:600;
display:inline-flex;gap:7px;align-items:center}
.hf-pill:hover{border-color:var(--brand);color:var(--brand)}
@media(max-width:760px){.navlinks a:not(.hf-pill){display:none}}
/* ---- hero ---- */
.hero{padding:74px 0 30px}
.hero-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:52px;align-items:center}
.eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;
text-transform:uppercase;color:var(--brand);font-weight:600;margin-bottom:22px}
h1{font-family:var(--disp);font-weight:900;letter-spacing:-.035em;
font-size:clamp(40px,6vw,64px);line-height:1.02;color:var(--ink)}
h1 .em{color:var(--brand)}
.lede{margin-top:22px;font-size:18.5px;color:var(--ink-2);max-width:38ch}
.cta-row{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.btn{padding:12px 20px;border-radius:10px;font-weight:600;font-size:15px;
display:inline-flex;align-items:center;gap:9px;transition:.16s ease}
.btn-solid{background:var(--brand);color:#fff}
.btn-solid:hover{background:var(--brand-hover);transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink-3)}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:40px}
.hero{padding:52px 0 20px}.lede{max-width:none}}
/* ---- annotation panel (signature) ---- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;
box-shadow:0 24px 60px -34px rgba(15,28,40,.28);overflow:hidden}
.panel-bar{display:flex;align-items:center;gap:8px;padding:13px 18px;
border-bottom:1px solid var(--line);background:#FBFCFD}
.dot{width:10px;height:10px;border-radius:50%;background:#E1E7EB}
.panel-tag{margin-left:auto;font-family:var(--mono);font-size:11.5px;
color:var(--ink-3);letter-spacing:.04em}
.ann{padding:52px 30px 40px;font-size:clamp(20px,2.4vw,25px);line-height:2.9;
color:var(--ink);font-weight:500}
.tok{white-space:pre-wrap}
.ent{position:relative;padding:1px 3px;border-radius:3px;
border-bottom:2.5px solid currentColor;white-space:nowrap;
transition:opacity .5s ease, background-color .5s ease;}
.ent .lbl{position:absolute;top:-1.55em;left:-2px;font-family:var(--mono);
font-size:.44em;letter-spacing:.09em;font-weight:600;padding:2px 6px;
border-radius:5px;color:#fff;white-space:nowrap;
transition:opacity .4s ease, transform .4s ease;}
.ent-med{color:var(--ent-med);background:var(--ent-med-bg)} .ent-med .lbl{background:var(--ent-med)}
.ent-lab{color:var(--ent-lab);background:var(--ent-lab-bg)} .ent-lab .lbl{background:var(--ent-lab)}
.ent-dx{color:var(--ent-dx);background:var(--ent-dx-bg)} .ent-dx .lbl{background:var(--ent-dx)}
.ent-icd{color:var(--ent-icd);background:var(--ent-icd-bg)} .ent-icd .lbl{background:var(--ent-icd)}
.ent-clin{color:var(--ent-clin);background:var(--ent-clin-bg)} .ent-clin .lbl{background:var(--ent-clin)}
.ent-vit{color:var(--ent-vit);background:var(--ent-vit-bg)} .ent-vit .lbl{background:var(--ent-vit)}
.ent-phi{color:var(--ent-phi);background:var(--ent-phi-bg)} .ent-phi .lbl{background:var(--ent-phi)}
/* pre-animation state only when JS + motion allowed */
html.js .ann .ent{opacity:.35;background-color:transparent}
html.js .ann .ent .lbl{opacity:0;transform:translateY(6px)}
.ann.go .ent{opacity:1}
.ann.go .ent .lbl{opacity:1;transform:none}
.panel-foot{border-top:1px solid var(--line);padding:11px 18px;
font-family:var(--mono);font-size:11.5px;color:var(--ink-3);
display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
/* ---- section scaffolding ---- */
section{padding:64px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;
gap:24px;flex-wrap:wrap;margin-bottom:38px}
.sec-kick{font-family:var(--mono);font-size:12px;letter-spacing:.15em;
text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
h2{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;
font-size:clamp(28px,3.6vw,40px);line-height:1.06}
.sec-note{color:var(--ink-2);max-width:46ch;font-size:16px}
/* ---- model cards ---- */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:760px){.cards{grid-template-columns:1fr}}
.card{position:relative;background:var(--panel);border:1px solid var(--line);
border-radius:14px;padding:26px 24px 22px;overflow:hidden;transition:.18s ease}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
background:var(--ac)}
.card:hover{transform:translateY(-3px);box-shadow:0 20px 44px -30px rgba(15,28,40,.35);
border-color:color-mix(in srgb,var(--ac) 40%,var(--line))}
.card-tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
text-transform:uppercase;font-weight:600;color:var(--ac)}
.card h3{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;
font-size:22px;margin:9px 0 8px}
.card p{color:var(--ink-2);font-size:15px;margin-bottom:18px;min-height:44px}
.spec{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.spec span{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);
background:var(--paper);border:1px solid var(--line);padding:4px 8px;border-radius:6px}
.card-link{font-weight:600;font-size:14.5px;color:var(--ac);display:inline-flex;
align-items:center;gap:6px}
.card-link .arrow{transition:transform .18s ease}
.card:hover .card-link .arrow{transform:translateX(4px)}
.card-soon{font-family:var(--mono);font-size:12.5px;color:var(--ink-3);font-weight:500}
.c-med{--ac:var(--ent-med)} .c-lab{--ac:var(--ent-lab)}
.c-dx{--ac:var(--ent-dx)} .c-clin{--ac:var(--ent-clin)}
.c-vit{--ac:var(--ent-vit)} .c-phi{--ac:var(--ent-phi)}
/* ---- AKPS dark band ---- */
.band{background:var(--brand-ink);color:#DCEAEC;border-radius:20px;
padding:52px 46px;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
@media(max-width:820px){.band{grid-template-columns:1fr;padding:38px 28px}}
.band .sec-kick{color:#93A7FF}
.band h2{color:#fff}
.band p{color:#B7CDD0;margin-top:16px;font-size:16.5px;max-width:50ch}
.band-licenses{display:flex;flex-direction:column;gap:12px}
.lic{border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:16px 18px;
background:rgba(255,255,255,.04)}
.lic b{font-family:var(--disp);font-weight:700;letter-spacing:-.01em;
display:block;font-size:16px;color:#fff}
.lic span{font-family:var(--mono);font-size:12px;color:#9AACE0}
.band-cta{margin-top:26px;display:inline-flex;gap:8px;align-items:center;
font-weight:600;color:#AEBEFF}
/* ---- brain (three lobes) ---- */
.lobes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:760px){.lobes{grid-template-columns:1fr}}
.lobe{border:1px solid var(--line);border-radius:14px;padding:24px 22px;background:var(--panel)}
.lobe .role{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;
text-transform:uppercase;color:var(--ink-3)}
.lobe h3{font-family:var(--disp);font-weight:800;font-size:21px;letter-spacing:-.02em;margin:7px 0 8px}
.lobe p{color:var(--ink-2);font-size:14.5px}
.brain-foot{margin-top:22px;font-size:15px;color:var(--ink-2)}
.brain-foot b{color:var(--ink);font-weight:600}
/* ---- proof ---- */
.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
background:var(--panel)}
.proof .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;padding:44px 28px}
@media(max-width:760px){.proof .wrap{grid-template-columns:1fr;gap:26px}}
.pf h4{font-family:var(--mono);font-size:12px;letter-spacing:.1em;
text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}
.pf p{font-size:15px;color:var(--ink-2)}
.pf b{color:var(--ink);font-weight:600}
/* ---- footer ---- */
footer{padding:56px 0 70px}
.foot-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
.foot-lead{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;font-size:22px;max-width:20ch}
.foot-links{display:flex;gap:30px;flex-wrap:wrap}
.foot-links a{font-weight:600;font-size:15px;display:inline-flex;gap:7px;align-items:center}
.foot-links a:hover{color:var(--brand)}
.foot-note{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);
font-size:13.5px;color:var(--ink-3);max-width:64ch}
/* ---- scroll reveal ---- */
html.js .reveal{opacity:0;transform:translateY(18px);
transition:opacity .6s ease,transform .6s ease}
html.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
*{transition:none!important;animation:none!important}
}
</style>
</head>
<body>
<header class="top">
<div class="wrap">
<a class="brand" href="https://huggingface.co/genzeonplatform" target="_blank" rel="noopener noreferrer">
<img class="mark-img" src="platforms.png" alt="Genzeon Platforms logo" width="30" height="30">Genzeon&nbsp;Platforms
</a>
<nav class="navlinks">
<a href="#models">Models</a>
<a href="#akps">AKPS</a>
<a href="#brain">Platform</a>
<a class="hf-pill" href="https://huggingface.co/genzeonplatform" target="_blank" rel="noopener noreferrer">πŸ€— View org</a>
</nav>
</div>
</header>
<!-- HERO -->
<div class="hero">
<div class="wrap hero-grid">
<div>
<div class="eyebrow">Genzeon Platforms Β· Healthcare AI</div>
<h1>Clinical text,<br><span class="em">structured.</span></h1>
<p class="lede">We build open, permissively-licensed clinical NLP β€” and the governed
platforms underneath it. Small models that turn messy notes into auditable,
typed clinical facts. Try them in your browser.</p>
<div class="cta-row">
<a class="btn btn-solid" href="#models">Explore the models β†’</a>
<a class="btn btn-ghost" href="https://huggingface.co/genzeonplatform" target="_blank" rel="noopener noreferrer">πŸ€— Full org page</a>
</div>
</div>
<div class="panel">
<div class="panel-bar">
<span class="dot"></span><span class="dot"></span><span class="dot"></span>
<span class="panel-tag">Healthcare Brain NER Β· live output</span>
</div>
<div class="ann" id="ann">
<span class="ent ent-phi"><span class="lbl">PHI Β· NAME</span>Mr. J. Alvarez</span><span class="tok"> reports </span><span class="ent ent-clin"><span class="lbl">FINDING</span>chest pain</span><span class="tok">; </span><span class="ent ent-vit"><span class="lbl">VITAL Β· BP</span>148/92</span><span class="tok">, </span><span class="ent ent-lab"><span class="lbl">LAB</span>A1c 8.2%</span><span class="tok">. Started </span><span class="ent ent-med"><span class="lbl">DRUG Β· DOSE</span>metformin 500&nbsp;mg</span><span class="tok"> </span><span class="ent ent-med"><span class="lbl">FREQ</span>BID</span><span class="tok"> for </span><span class="ent ent-dx"><span class="lbl">DIAGNOSIS</span>type 2 diabetes</span><span class="tok"> </span><span class="ent ent-icd"><span class="lbl">ICD-10</span>E11.9</span><span class="tok">.</span>
</div>
<div class="panel-foot">
<span>6 models Β· Bio_ClinicalBERT + PubMedBERT</span>
<span>Apache-2.0</span>
</div>
</div>
</div>
</div>
<!-- MODELS -->
<section id="models">
<div class="wrap">
<div class="sec-head">
<div>
<div class="sec-kick">Open weights</div>
<h2>The Healthcare Brain NER family</h2>
</div>
<p class="sec-note">Six production-grade clinical Named Entity Recognition models, built on trusted
US/EU biomedical bases and released under Apache-2.0. Each ships with a live demo you can try in the browser.</p>
</div>
<div class="cards">
<div class="card c-med reveal">
<div class="card-tag">Medication</div>
<h3>Healthcare Brain Medication NER</h3>
<p>Drug names, dosages, routes, frequencies and administration details across 12 categories.</p>
<div class="spec">
<span>Bio_ClinicalBERT</span><span>BIO Β· 25 labels</span><span>~110M</span><span>Apache-2.0</span>
</div>
<a class="card-link" href="https://huggingface.co/spaces/genzeonplatform/healthcare-brain-medication-ner" target="_blank" rel="noopener noreferrer">
Open demo <span class="arrow">β†’</span></a>
</div>
<div class="card c-lab reveal">
<div class="card-tag">Laboratory</div>
<h3>Healthcare Brain Laboratory NER</h3>
<p>Lab tests, values and units, with rule-based numeric extraction for structured results.</p>
<div class="spec">
<span>Bio_ClinicalBERT</span><span>BIO Β· 21 labels</span><span>~110M</span><span>Apache-2.0</span>
</div>
<a class="card-link" href="https://huggingface.co/spaces/genzeonplatform/healthcare-brain-laboratory-ner" target="_blank" rel="noopener noreferrer">
Open demo <span class="arrow">β†’</span></a>
</div>
<div class="card c-dx reveal">
<div class="card-tag">Diagnosis Β· Coding</div>
<h3>Healthcare Brain Diagnosis / ICD NER</h3>
<p>Diagnoses and conditions across 9 categories, with ICD-10 / SNOMED linking via SapBERT.</p>
<div class="spec">
<span>PubMedBERT</span><span>BIO Β· 19 labels</span><span>~110M + SapBERT</span><span>Apache-2.0</span>
</div>
<a class="card-link" href="https://huggingface.co/spaces/genzeonplatform/healthcare-brain-diagnosis-icd-ner" target="_blank" rel="noopener noreferrer">
Open demo <span class="arrow">β†’</span></a>
</div>
<div class="card c-clin reveal">
<div class="card-tag">Clinical findings</div>
<h3>Healthcare Brain Clinical Findings NER</h3>
<p>Symptoms, findings and other clinical mentions pulled from free-text notes.</p>
<div class="spec">
<span>Bio_ClinicalBERT</span><span>spaCy NER</span><span>~110M</span><span>Apache-2.0</span>
</div>
<a class="card-link" href="https://huggingface.co/spaces/genzeonplatform/healthcare-brain-clinical-findings-ner" target="_blank" rel="noopener noreferrer">
Open demo <span class="arrow">β†’</span></a>
</div>
<div class="card c-vit reveal">
<div class="card-tag">Vitals</div>
<h3>Healthcare Brain Vitals NER</h3>
<p>Blood pressure, heart rate, temperature, SpO&#8322; and other vital signs, read from text.</p>
<div class="spec">
<span>Bio_ClinicalBERT</span><span>Token classification</span><span>~110M</span><span>Apache-2.0</span>
</div>
<a class="card-link" href="https://huggingface.co/spaces/genzeonplatform/healthcare-brain-vitals-ner" target="_blank" rel="noopener noreferrer">
Open demo <span class="arrow">β†’</span></a>
</div>
<div class="card c-phi reveal">
<div class="card-tag">PHI Β· de-identification</div>
<h3>Healthcare Brain NER</h3>
<p>Names, dates, identifiers and other PHI / PII β€” the base model for de-identifying and redacting notes before any downstream use.</p>
<div class="spec">
<span>Bio_ClinicalBERT</span><span>Token classification</span><span>~110M</span><span>Apache-2.0</span>
</div>
<a class="card-link" href="https://huggingface.co/spaces/genzeonplatform/healthcare-brain-ner" target="_blank" rel="noopener noreferrer">
Open demo <span class="arrow">β†’</span></a>
</div>
</div>
</div>
</section>
<!-- AKPS -->
<section id="akps">
<div class="wrap">
<div class="band reveal">
<div>
<div class="sec-kick">Open specification</div>
<h2>AKPS β€” Aether Knowledge Pack Specification</h2>
<p>An open format for expressing healthcare coverage policy as portable, machine-readable
knowledge packs β€” so coverage logic isn't trapped in any one vendor's system. Released
April 2026. If you work on coverage policy, prior auth, or clinical rules, we'd love your eyes on it.</p>
<a class="band-cta" href="https://genzeon.one" target="_blank" rel="noopener noreferrer">Read about AKPS at genzeon.one β†’</a>
</div>
<div class="band-licenses">
<div class="lic"><b>Specification</b><span>CC BY 4.0</span></div>
<div class="lic"><b>Reference tooling</b><span>Apache-2.0</span></div>
</div>
</div>
</div>
</section>
<!-- BRAIN -->
<section id="brain">
<div class="wrap">
<div class="sec-head">
<div>
<div class="sec-kick">The bigger picture</div>
<h2>Where these models go: the Healthcare Brain platform</h2>
</div>
<p class="sec-note">The open NER family is the ground layer. Above it sits our larger system β€”
three production platforms on one patented architecture, <b>Aether Oneβ„’</b>.</p>
</div>
<div class="lobes">
<div class="lobe reveal">
<div class="role">Reasoning lobe</div>
<h3>HIP One</h3>
<p>Clinical decisions, medical necessity, prior authorization, utilization management and revenue-cycle intelligence.</p>
</div>
<div class="lobe reveal">
<div class="role">Engagement lobe</div>
<h3>PES One</h3>
<p>Conversational AI for member and patient engagement, care navigation, and quality β€” Stars and HEDIS.</p>
</div>
<div class="lobe reveal">
<div class="role">Governance lobe</div>
<h3>CPS One</h3>
<p>Privacy program operations, breach response, and AI governance across the enterprise.</p>
</div>
</div>
<p class="brain-foot">The models and specs on this org are released under their stated open
licenses. Our commercial platforms are separate β€” and grounded in the same
<b>right, auditable, and defensible</b> discipline.</p>
</div>
</section>
<!-- PROOF -->
<div class="proof">
<div class="wrap">
<div class="pf">
<h4>In production</h4>
<p>Live in the <b>CMS WISeR Model</b> (2026–2031) via Novitas in New Jersey β€” real prior-auth
volume at <b>100% of the CMS 3-day turnaround</b>, with <b>zero automated denials</b>. Every
denial is signed by a named, licensed reviewer.</p>
</div>
<div class="pf">
<h4>Trust posture</h4>
<p><b>HITRUST r2</b>, <b>SOC 2</b> and <b>HIPAA</b> aligned. Open bases restricted to
US/EU-origin models by design β€” a sovereignty choice baked into every model here.</p>
</div>
<div class="pf">
<h4>Partners</h4>
<p>Built alongside <b>Microsoft</b> (10-year strategic partnership, 5 solution designations),
<b>UiPath</b>, and <b>Databricks</b>.</p>
</div>
</div>
</div>
<!-- FOOTER -->
<footer>
<div class="wrap">
<div class="foot-grid">
<div>
<img class="foot-logo" src="Genzeon-Platform-Logo.png" alt="Genzeon Platforms">
<div class="foot-lead">Being right and auditable beats being flashy.</div>
</div>
<div class="foot-links">
<a href="https://genzeon.one" target="_blank" rel="noopener noreferrer">🌐 genzeon.one</a>
<a href="https://www.linkedin.com/newsletters/7469820048304467968/" target="_blank" rel="noopener noreferrer">πŸ“° Building the Healthcare Brain</a>
<a href="https://huggingface.co/genzeonplatform" target="_blank" rel="noopener noreferrer">πŸ€— @genzeonplatform</a>
</div>
</div>
<p class="foot-note">Genzeon Platforms β€” A Genzeon Company. Models and specifications on this
organization are released under their stated open licenses; our commercial platforms are
separate offerings.</p>
</div>
</footer>
<script>
(function(){
var reduce = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
if(reduce) return; // no JS-driven motion; content stays fully visible
document.documentElement.classList.add("js");
// Hero annotation: stagger the entity reveals
window.addEventListener("load", function(){
var ann = document.getElementById("ann");
if(!ann) return;
var ents = ann.querySelectorAll(".ent");
ents.forEach(function(el,i){ el.style.transitionDelay = (i*150)+"ms"; });
requestAnimationFrame(function(){ ann.classList.add("go"); });
});
// Scroll reveals
var io = new IntersectionObserver(function(entries){
entries.forEach(function(e){
if(e.isIntersecting){ e.target.classList.add("in"); io.unobserve(e.target); }
});
},{threshold:.14, rootMargin:"0px 0px -8% 0px"});
document.querySelectorAll(".reveal").forEach(function(el){ io.observe(el); });
})();
</script>
</body>
</html>