Site Builder
Editing:
indexnice.php
writable 0666
<!doctype html> <html lang="en" data-theme="amber"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <title>TruthCase™ — The Case for Truth | RF SAFE</title> <meta name="description" content="Hard‑hitting, evidence‑driven page: cancer, fertility, and non‑thermal mechanisms; a Clean Ether roadmap; and a direct charge that HHS must enforce Public Law 90‑602 now. Pick your phone and get two clean purchase buttons." /> <meta name="color-scheme" content="light dark" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&display=swap"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&display=swap"> <style> /* ========================= THEME TOKENS ========================= */ :root{ --bg:#0b0b0c; --ink:#f6f6f7; --muted:#cfcfd4; --card:#121317; --border:#24262c; --shadow:0 18px 42px rgba(0,0,0,.45); --brand:#ffb020; --brand-ink:#ffe1a6; --cta:#ffb020; --cta-ink:#1a1309; --ok:#10b981; --warn:#f97316; --ring:rgba(255,176,32,.35); --soft:rgba(255,176,32,.10); --soft2:rgba(255,176,32,.08); --radius:20px; --font: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; } /* Light alt */ html[data-theme="light"]{ --bg:#f7f7fb; --ink:#0f1115; --muted:#5c6270; --card:#ffffff; --border:#e7e8ee; --shadow:0 18px 42px rgba(16,24,40,.08); --brand:#0ea5e9; --brand-ink:#075985; --cta:#f59e0b; --cta-ink:#1a1309; --ring:rgba(14,165,233,.35); --soft:rgba(14,165,233,.08); --soft2:rgba(245,158,11,.10); } /* Base */ *{box-sizing:border-box} html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 var(--font);letter-spacing:.2px} a{color:var(--brand);text-decoration:none} a:hover{text-decoration:underline} .wrap{max-width:1200px;margin:0 auto;padding:28px 18px 120px} /* Nav */ .nav{position:sticky;top:0;z-index:60;backdrop-filter:saturate(1.1) blur(8px); background:color-mix(in oklab, var(--bg) 70%, transparent);border-bottom:1px solid var(--border)} .navin{max-width:1200px;margin:0 auto;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 18px} .brand{display:flex;gap:10px;align-items:center;font-weight:900;color:var(--brand-ink)} .dot{width:10px;height:10px;border-radius:50%;background:var(--brand);box-shadow:0 0 18px var(--ring)} .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap} /* Buttons */ .btn{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:11px 16px;font-weight:900;border:2px solid var(--brand); background:transparent;color:var(--brand);box-shadow:0 8px 20px var(--ring);transition:.2s;cursor:pointer} .btn:hover{transform:translateY(-1px)} .btn.primary{background:var(--cta);border-color:var(--cta);color:var(--cta-ink)} .btn.ghost{border-color:var(--border);color:var(--brand)} .btn.small{padding:8px 12px;font-size:.92rem} /* Theme toggle */ .theme{display:flex;gap:6px;border:1px solid var(--border);border-radius:999px;padding:4px;background:color-mix(in oklab, var(--card) 80%, transparent)} .theme button{border:0;background:transparent;color:var(--muted);padding:6px 10px;border-radius:999px;cursor:pointer} .theme button[aria-pressed="true"]{background:var(--soft);color:var(--brand);font-weight:800} /* Hero */ .hero{ margin-top:18px;background: radial-gradient(800px 300px at 10% -20%, var(--soft), transparent 60%), radial-gradient(800px 300px at 90% -40%, var(--soft2), transparent 60%), var(--card); border-radius:24px;box-shadow:var(--shadow);padding:28px } .eyebrow{display:inline-flex;align-items:center;gap:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--brand); border:1px solid var(--border);background:color-mix(in oklab, var(--card) 90%, transparent);border-radius:999px;padding:6px 12px} h1{margin:10px 0 8px;font-size:clamp(28px,4.8vw,56px);line-height:1.06} .subtitle{color:var(--muted);max-width:980px} .badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px} .badge{font-size:12px;font-weight:900;border:1px solid var(--border);background:color-mix(in oklab, var(--card) 90%, transparent);color:var(--brand); border-radius:999px;padding:6px 10px} .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px} /* Trust pills */ .trust{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px} .trust .pill{display:flex;gap:8px;align-items:center;border:1px solid var(--border);background:color-mix(in oklab, var(--card) 90%, transparent); padding:8px 12px;border-radius:999px;color:var(--muted);font-weight:700} .trust svg{width:18px;height:18px} /* Sections */ .section{margin-top:44px} .card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;border:1px solid var(--border)} .grid{display:grid;gap:18px} @media(min-width:980px){.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:1fr 1fr 1fr}} .lead{font-size:1.05rem;color:color-mix(in oklab, var(--ink) 80%, var(--muted))} .slogan{border-left:4px solid var(--brand);padding-left:12px;margin:6px 0;font-weight:900;color:var(--ink)} .callout{background:color-mix(in oklab, var(--card) 92%, transparent);border:1px solid var(--border);border-radius:16px;padding:14px} /* TL;DR stats (fixed) */ .stat{display:block;padding:14px;border:1px dashed var(--border);border-radius:14px;word-break:normal;white-space:normal} .stat b{display:inline-block;margin-right:10px;font-size:1.2rem;white-space:nowrap} /* Details */ details{border:1px solid var(--border);border-radius:14px;background:color-mix(in oklab, var(--card) 94%, transparent);padding:10px} summary{cursor:pointer;font-weight:900} summary::-webkit-details-marker{display:none} details[open]{background:color-mix(in oklab, var(--card) 88%, transparent)} /* Table */ .table{overflow:auto;border-radius:14px;border:1px solid var(--border)} table{width:100%;border-collapse:separate;border-spacing:0;min-width:860px} th,td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top} thead th{background:color-mix(in oklab, var(--card) 90%, transparent);font-size:14px;color:var(--brand)} /* Modal */ .modal-backdrop{position:fixed;inset:0;z-index:100; background:radial-gradient(900px 420px at 50% 10%, color-mix(in oklab, var(--brand) 20%, transparent), rgba(0,0,0,.78) 58%), rgba(0,0,0,.55); display:none;opacity:0;pointer-events:none;transition:opacity .25s ease} .modal{position:fixed;inset:0;z-index:101;display:none;place-items:center;pointer-events:none;opacity:0;transition:opacity .25s ease} .modal-panel{ width:min(740px,94vw);background:var(--card);border-radius:20px;border:1px solid color-mix(in oklab, var(--brand) 35%, var(--border)); box-shadow:0 22px 60px rgba(0,0,0,.35), 0 0 0 6px color-mix(in oklab, var(--brand) 12%, transparent); padding:18px;pointer-events:auto;transform:translateY(6px) scale(.985);transition:transform .25s ease} .modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px} .modal-title{font-weight:900;margin:0} .close{appearance:none;border:1px solid var(--border);background:color-mix(in oklab, var(--card) 85%, transparent);color:var(--brand); border-radius:999px;padding:8px 12px;font-weight:900;cursor:pointer} .form-row{display:grid;gap:14px;margin-top:12px} @media(min-width:700px){.form-row{grid-template-columns:1fr 1fr}} label{font-weight:800} select{width:100%;padding:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in oklab, var(--card) 80%, transparent); color:var(--ink);font-size:16px;box-shadow:0 8px 20px rgba(0,0,0,.08) inset} select:focus-visible{outline:2px solid color-mix(in oklab, var(--brand) 55%, transparent)} .modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px} .helper{font-size:.9rem;color:var(--muted)} .is-hidden{display:none !important} /* Open state */ body.modal-open .modal-backdrop{display:block;opacity:1;pointer-events:auto} body.modal-open .modal{display:grid;opacity:1;pointer-events:auto} body.modal-open .modal-panel{transform:translateY(0) scale(1)} body.modal-open .wrap, body.modal-open .nav{filter:blur(1.2px) saturate(.9);opacity:.9;transform:scale(.998);transition:.2s} /* Mobile bottom-sheet */ @media (max-width:560px){ .modal{align-items:end} .modal-panel{width:100vw;max-height:85vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px 20px} .modal-panel::after{content:"";display:block;width:44px;height:4px;border-radius:999px; background:color-mix(in oklab, var(--ink) 40%, transparent);opacity:.5;margin:4px auto 8px} .modal-actions{position:sticky;bottom:-16px;background:linear-gradient(180deg, transparent 0%, color-mix(in oklab, var(--card) 96%, transparent) 42%); padding-top:10px;padding-bottom:4px} } /* Reveal */ .reveal{opacity:0;transform:translateY(12px);transition:all .5s ease} .reveal.in{opacity:1;transform:none} /* Sticky Mobile CTA */ .mobile-cta{position:fixed;left:0;right:0;bottom:10px;z-index:30;display:none;justify-content:center} @media (max-width:760px){ .mobile-cta{display:flex} } .mobile-cta .btn{box-shadow:0 18px 32px color-mix(in oklab, var(--cta) 30%, transparent)} /* Tag pills */ .kicker{display:inline-flex;gap:8px;flex-wrap:wrap} .kicker span{border:1px solid var(--border);border-radius:999px;padding:6px 10px;background:color-mix(in oklab, var(--card) 90%, transparent);color:var(--muted);font-weight:700} /* Toast */ .toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--card);color:var(--ink);border:1px solid var(--border); border-radius:10px;padding:10px 14px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s} .toast.show{opacity:1;pointer-events:auto} </style> </head> <body> <!-- NAV --> <div class="nav" role="navigation" aria-label="Primary"> <div class="navin"> <div class="brand"><span class="dot"></span><span>RF SAFE • TruthCase™</span></div> <div class="row"> <a class="btn ghost" href="#tl">TL;DR</a> <a class="btn ghost" href="#evidence">Evidence</a> <a class="btn ghost" href="#law">Law & Mandate</a> <a class="btn ghost" href="#policy">Roadmap</a> <a class="btn ghost" href="#how">How to Use</a> <div class="theme" role="group" aria-label="Theme"> <button id="tAmber" aria-pressed="true" title="Amber dark (low blue)">Amber</button> <button id="tLight" aria-pressed="false" title="Light theme">Light</button> </div> <button class="btn primary" id="openModalBtn" type="button">Select Your Phone</button> </div> </div> </div> <div class="wrap"> <!-- HERO --> <header class="hero reveal"> <span class="eyebrow">RF SAFE • Since the 1990s</span> <h1>TruthCase™ — the case that tells the truth</h1> <p class="subtitle"> RF SAFE pioneered exposure‑reduction cases in the <strong>1990s</strong>. TruthCase™ is different: it cuts everyday microwave exposure without gimmicks—and it tells the hard truth about why America still runs on <strong>1996 thermal‑only limits</strong>, how that violates federal law, and what to do about it now. </p> <div class="badges" role="list"> <span class="badge" role="listitem">Shield between you & phone</span> <span class="badge" role="listitem">No metal loops • No magnets</span> <span class="badge" role="listitem">Antenna‑aware & ultra‑thin</span> <span class="badge" role="listitem">Ohmmeter‑checkable shield</span> </div> <div class="trust" aria-label="Key assurances"> <span class="pill">First‑principles design</span> <span class="pill">Honest usage guidance</span> <span class="pill">Roadmap beyond products</span> </div> <div class="cta-row"> <button class="btn primary" id="openModalBtn2" type="button">Select Your Phone</button> <a class="btn" href="#truths">Why TruthCase™ is different</a> <a class="btn ghost" href="https://www.rfsafe.com/class/user-guide/" target="_blank" rel="noopener">Short Version</a> </div> </header> <!-- NO-HEDGING PLEDGE --> <section class="section card reveal"> <h2 style="margin:0 0 8px">RF SAFE’s No‑Hedging Pledge</h2> <p class="lead">The evidence is sufficient to act. We will not dilute signals that affect children and families. We call for <strong>LiFi mandates indoors</strong>, enforcement of <strong>Public Law 90‑602</strong>, and the end of Section 704’s gag on communities. FCC auctions spectrum; medical agencies must regulate health.</p> <p class="slogan">If physics says a design raises output, we don’t ship it. If evidence says exposure carries risk, we reduce it and change the system.</p> </section> <!-- TL;DR --> <section id="tl" class="section card reveal"> <h2 style="margin:0 0 8px">Wireless Radiation, Cancer, Fertility & Mechanism: what the totality shows</h2> <div class="grid cols-2"> <div class="card"> <div class="stat"><b>1) Cancer signals</b> appear where exposure is highest: INTERPHONE’s heaviest‑use decile ≈ <strong>+40% glioma risk</strong>. U.S. NTP + Italy’s Ramazzini: <strong>gliomas</strong> and <strong>heart schwannomas</strong> at “too‑low” levels. A <strong>WHO‑commissioned 2025 review</strong> graded animal evidence for those tumors as <strong>High</strong>.</div> <div class="stat"><b>2) Male fertility</b> is impaired: WHO‑program meta‑analysis revised pooled estimate to <strong>OR 1.68</strong> for decreased pregnancy rate. Concordant endpoints: motility, morphology, DNA damage, and testicular oxidative stress at non‑thermal levels.</div> </div> <div class="card"> <div class="stat"><b>3) Mechanism</b> is non‑thermal: <strong>VGIC/VGCC disruption → Ca²⁺ dysregulation → ROS/oxidative stress → DNA damage</strong>; ~<strong>95%</strong> of relevant experiments show oxidative‑stress effects at non‑thermal intensities.</div> <div class="stat"><b>4) Population signal</b>: Denmark’s registry shows a sustained rise in brain/CNS tumors to 2023 (steepest jump 2021→2023). Not causation proof; absolutely not “no signal.”</div> </div> </div> <p class="lead" style="margin-top:8px">U.S. limits are **thermal‑only (1996)**. The fix is **law and oversight**: enforce EPRC (Public Law 90‑602), restore local authority, and move indoor connectivity toward LiFi (IEEE 802.11bb).</p> </section> <!-- DIFFERENT ON PURPOSE --> <section class="section card reveal"> <h2 style="margin:0 0 8px">Different on purpose</h2> <p class="lead">Most “anti‑radiation” cases add magnets, metal loops, or thick stacks that trigger higher phone output. TruthCase™ removes the gimmicks and follows physics.</p> <div class="grid cols-3"> <div class="card"> <h3>Design</h3> <p>Directional shielding <strong>between you & phone</strong>. <strong>No metal loops, magnets, or plate steel.</strong> Ear‑side continuity.</p> </div> <div class="card"> <h3>Usage</h3> <p>Habits that matter: call posture, pocket orientation, night distance, turning off radios you don’t need.</p> </div> <div class="card"> <h3>Roadmap</h3> <p><strong>Light‑based networking</strong> and modernized law—so homes and schools rely more on light and less on microwaves.</p> </div> </div> </section> <!-- THE FOUR TRUTHS --> <section id="truths" class="section card reveal"> <h2 style="margin:0 0 6px">The Four Truths the market ignores</h2> <details open> <summary>Truth #1 — Unshielded ear‑side holes break protection where you need it most</summary> <p>Large ear‑aligned apertures are a direct path for higher‑frequency signals and defeat continuity in calls. TruthCase™ keeps a shielded ear‑side path.</p> </details> <details> <summary>Truth #2 — Detachable magnets & steel plates make phones shout</summary> <p>They <strong>detune</strong> antennas. Power‑control ramps **up** output to hold the link—more exposure, not less. TruthCase™ excludes magnets, plates, and thick wallet stacks.</p> </details> <details> <summary>Truth #3 — Metal loops and hardware near antennas detune the system</summary> <p>Conductive loops near radiators alter near‑field behavior and degrade efficiency. Phones respond by transmitting harder. TruthCase™ has <strong>no metal loops</strong> and stays thin where radios live.</p> </details> <details> <summary>Truth #4 — “99% protection” fabric numbers ≠ your life</summary> <p>A swatch is not your duty cycle. Reduction comes from shield placement, antenna behavior, and how long radios are active. We refuse “99% everywhere.”</p> </details> <div class="card" style="margin-top:12px"> <h3 style="margin:0 0 6px">Ten short truths</h3> <div class="kicker"> <span>Shield the person, not the phone.</span><span>Placement beats percentage.</span><span>Thin near antennas.</span> <span>No magnets/loops/plates.</span><span>Continuity at the ear.</span><span>Duty cycle drives dose.</span> <span>Distance at night is free.</span><span>Mitigate now, reform policy.</span><span>Light indoors, fewer microwaves.</span><span>Truth over marketing.</span> </div> </div> </section> <!-- EVIDENCE --> <section id="evidence" class="section card reveal"> <h2 style="margin:0 0 6px">The evidence without euphemisms</h2> <div class="grid cols-2"> <div class="card"> <h3>Cancer</h3> <ul> <li><strong>INTERPHONE</strong>: top decile (≥1,640 h) ≈ OR 1.40 for glioma (~30 min/day over 10 years).</li> <li><strong>NTP</strong>: clear evidence of heart schwannomas (male rats); some for gliomas; DNA damage.</li> <li><strong>Ramazzini</strong>: far‑field ~0.1 W/kg → more heart schwannomas and glial tumors.</li> <li><strong>WHO‑commissioned 2025</strong>: animal evidence **High** for glioma & heart schwannoma.</li> </ul> </div> <div class="card"> <h3>Reproduction & development</h3> <ul> <li><strong>Male fertility</strong>: pooled OR **1.68** for decreased pregnancy rate in experimental studies; consistent oxidative stress, DNA damage, reduced motility and viability at non‑thermal exposures.</li> <li><strong>Prenatal/offspring</strong>: fetal/placental oxidative stress; **behavioral changes** in exposed offspring reported across multiple labs.</li> <li><strong>Mechanistic match</strong>: mitochondrial strain, hormone signaling disruption, ROS‑mediated DNA damage.</li> </ul> </div> <div class="card"> <h3>Mechanism</h3> <p><strong>Polarized, pulsed RFR → VGIC/VGCC interference → Ca²⁺ influx → ROS → DNA damage</strong>. Explains tumor types, fertility effects, and prenatal outcomes. Microwave‑hearing shows pulsed bioeffects far below heating thresholds.</p> </div> <div class="card"> <h3>Population‑level signal</h3> <p>Denmark’s official registry shows increasing brain/CNS tumor rates through 2023, with the sharpest jump 2021→2023. Public health acts on converging evidence; it doesn’t wait for a mythical single “perfect” study.</p> </div> </div> </section> <!-- LAW & MANDATE --> <section id="law" class="section card reveal"> <h2 style="margin:0 0 6px">Law & Mandate: this isn’t optional</h2> <div class="grid cols-3"> <div class="card"> <h3>Public Law 90‑602 (EPRC)</h3> <p><strong>Not a suggestion—an obligation.</strong> The Electronic Product Radiation Control program (21 U.S.C. § 360hh–ss) says HHS <strong>shall</strong> establish and carry out a radiation‑control program for electronic products—conducting research <em>and</em> setting performance standards.</p> <div class="callout"><strong>Status:</strong> The NTP cellphone‑RF program was shut down in early 2025. With no successor executing EPRC’s scope, <strong>HHS is not in compliance with federal law.</strong></div> </div> <div class="card"> <h3>Remedy (immediate)</h3> <ul> <li>Reconstitute a national RF research program (NTP or successor) with **non‑thermal endpoints**.</li> <li>Promulgate **performance standards** for wireless products (duty‑cycle controls, labeling, child‑protective margins).</li> <li>Stand up an **independent RF Health Standards Board** led by HHS/FDA/NIH with EPA.</li> </ul> </div> <div class="card"> <h3>Section 704 (1996)</h3> <p><strong>Preemption of rights.</strong> Section 704 bars local denial of facilities “on the basis of environmental effects of RF emissions” if FCC limits are met—functionally gagging health‑based objections for nearly three decades.</p> <p class="slogan">Restore the <strong>First</strong> & <strong>Tenth</strong> Amendments in practice. Repeal/repair 704.</p> </div> </div> <div class="card" style="margin-top:12px"> <h3>Regulatory capture → Realignment</h3> <p><strong>FCC ≠ health regulator.</strong> Keep FCC on spectrum engineering and auctions. Seat health oversight where it belongs: <strong>HHS/FDA/NIH with EPA</strong> as co‑regulator for environmental exposure. Establish an interagency board with authority to set biologically protective standards.</p> </div> <div class="card" style="margin-top:12px"> <h3>We had the evidence before 1996</h3> <ul> <li><strong>1971 U.S. Navy bibliography</strong> summarized hundreds of RF bioeffects papers.</li> <li><strong>Allan Frey</strong>: microwave hearing & blood‑brain barrier effects.</li> <li><strong>Arthur Guy</strong>: foundational RF dosimetry.</li> <li><strong>Lai & Singh (1995/96)</strong>: DNA single‑ and double‑strand breaks at low intensities.</li> <li><strong>CTIA/WTR era</strong>: internal “war‑gaming” of unfavorable findings documented.</li> </ul> <p class="slogan">Non‑thermal mechanisms were on the record. Pretending otherwise is how we got 1996 thermal‑only limits.</p> </div> </section> <!-- POLICY ROADMAP --> <section id="policy" class="section card reveal"> <h2 style="margin:0 0 6px">Clean Ether Roadmap</h2> <div class="grid cols-3"> <div class="card"> <h3>Home & school (now)</h3> <ul> <li>Phones off‑body; speaker/air‑tubes; shorten on‑head calls.</li> <li>Wire it where possible; use <strong>LiFi (802.11bb)</strong> for wireless indoors.</li> <li>Keep routers away from sleeping areas; schedule overnight off.</li> <li>Prefer text/async; download then offline for media.</li> </ul> </div> <div class="card"> <h3>Institutions</h3> <ul> <li>Deploy LiFi in classrooms, libraries, clinics, aircraft cabins.</li> <li>Buffer RF facilities from play areas; shut school small‑cells after hours.</li> <li>Buy low‑power APs with sleep/timer modes by default.</li> </ul> </div> <div class="card"> <h3>Nation</h3> <ul> <li>Enforce EPRC; restart federal RF research now.</li> <li>Set biologically protective standards (pulsation/modulation, cumulative dose, child margins).</li> <li>Repeal/repair Section 704; restore community authority.</li> <li>Adopt a <strong>Clean Ether Act</strong>: optical indoors by default, RF for mobility.</li> </ul> </div> </div> <div class="cta-row" style="margin-top:12px"> <a class="btn" href="https://www.usa.gov/elected-officials" target="_blank" rel="noopener">Find your lawmakers</a> <button id="copyLetter" class="btn ghost" type="button">Copy sample letter</button> </div> <pre id="letter" class="card" style="white-space:pre-wrap;margin-top:10px"> Subject: HHS non‑compliance with Public Law 90‑602; restore local authority; move RF health oversight to HHS/EPA I’m asking you to: 1) Direct HHS to immediately execute its non‑discretionary mandate under the Electronic Product Radiation Control program (21 U.S.C. §360hh–ss). HHS shall conduct research and set performance standards for electronic product radiation, including wireless devices and infrastructure. With the NTP cellphone‑RF program shut down in 2025 and no successor executing EPRC scope, HHS is out of compliance. 2) Move RF health oversight to where it belongs: HHS/FDA/NIH with EPA as co‑regulator. Keep FCC on spectrum engineering/auctions, not health. 3) Repeal/repair Section 704 of the 1996 Telecom Act to restore First & Tenth Amendment rights so communities can protect schools and neighborhoods. 4) Modernize RF exposure standards to address pulsed/modulated signals, cumulative exposures, whole‑body low‑level fields, and children’s susceptibility. Mandate LiFi (IEEE 802.11bb) for indoor networks where cost‑effective, reserving RF for mobility. The evidence is more than enough to act: high‑exposure epidemiology, two concordant animal bioassays, a WHO‑commissioned review grading animal evidence as High for glioma and heart schwannoma, robust oxidative‑stress/DNA‑damage mechanisms, and rising population signals. Waiting longer is not prudence—it’s neglect. </pre> </section> <!-- HOW TO USE --> <section id="how" class="section grid cols-2 reveal"> <div class="card"> <h3>How to use TruthCase™</h3> <ul> <li><strong>Calls:</strong> answer/start, then close the cover <em>toward your head</em>; use speaker or wired for long calls.</li> <li><strong>Pocket:</strong> shielded cover toward your body (back pocket often best).</li> <li><strong>Night:</strong> distance or airplane mode; keep phones away from heads and children’s beds.</li> <li><strong>Duty cycle:</strong> turn off radios you don’t need (Wi‑Fi, Bluetooth, hotspot).</li> </ul> <p class="lead">Protection = design + practice. TruthCase™ enables the practice to work.</p> </div> <div class="card"> <h3>Why thin matters</h3> <p>Over‑thick “armor” near antenna zones degrades efficiency and makes phones transmit harder. TruthCase™ stays deliberately slim and antenna‑aware so the phone can do the same job with less output.</p> <p class="slogan"><strong>Not anti‑radiation. Pro‑truth.</strong></p> </div> </section> <!-- TRUTH STANDARD --> <section class="section card reveal"> <h2 style="margin:0 0 6px">The Truth Standard™</h2> <div class="table"> <table> <thead><tr><th>Principle</th><th>Meaning</th><th>TruthCase™ Position</th></tr></thead> <tbody> <tr> <td><strong>Shield the person, not the phone</strong></td> <td>Place the shield <em>between</em> you & the source during calls and pocket carry.</td> <td>Front cover toward head/body; directional use is the point.</td> </tr> <tr> <td><strong>Keep antennas efficient</strong></td> <td>Avoid obstructing/detuning radiators (which triggers power boosts).</td> <td><strong>No metal loops, no magnets, no plate steel</strong>; thin near antenna zones.</td> </tr> <tr> <td><strong>Continuity at the ear</strong></td> <td>Don’t break the shield path with a large ear‑aligned aperture.</td> <td>Shielded ear‑side path; continuity in call posture.</td> </tr> <tr> <td><strong>Field behavior > fabric %</strong></td> <td>Measure outcomes in real use, not swatch percentages.</td> <td>No “99% everywhere” claims; we teach correct use.</td> </tr> <tr> <td><strong>Verifiable materials</strong></td> <td>Let people confirm a conductive shield path.</td> <td>Ohmmeter‑checkable access in the front cover.</td> </tr> </tbody> </table> </div> </section> <!-- FAQ --> <section class="section card reveal"> <h2 style="margin:0 0 6px">Quick answers</h2> <div class="grid cols-2"> <div class="card"> <h3>Does it “block 99%”?</h3> <p>No slogans. Real‑world reduction depends on placement, antenna behavior, and duty cycle. We teach the practice that lowers exposure; we don’t promise swatch numbers.</p> </div> <div class="card"> <h3>Why avoid magnets/loops/plates?</h3> <p>They obstruct/detune antennas; the phone compensates by transmitting harder. That raises exposure—exactly what we’re reducing.</p> </div> <div class="card"> <h3>Is TruthCase™ QuantaCase®?</h3> <p>Yes. <strong>TruthCase™ is QuantaCase® by RF SAFE</strong>—built to expose design flaws, reduce exposure today, and lead the policy shift we need.</p> </div> <div class="card"> <h3>Where do the links go?</h3> <p>Pick a model to see <strong>Buy on Amazon</strong> (if an ASIN exists) and <strong>Buy Now</strong> (direct). Everything is from <code>truthcases.json</code> so affiliates can re‑use this page.</p> </div> </div> </section> <!-- REFERENCES --> <section id="refs" class="section card reveal"> <h2 style="margin:0 0 6px">References & Links</h2> <ol> <li>INTERPHONE press release (heavy use ≈30 min/day; glioma OR 1.40): <a target="_blank" rel="noopener" href="https://www.iarc.who.int/wp-content/uploads/2018/07/pr200_E.pdf">IARC</a></li> <li>Corporate‑subscription exclusion in billing cohorts: <a target="_blank" rel="noopener" href="https://pmc.ncbi.nlm.nih.gov/articles/PMC3226506/">EHP / PMC</a></li> <li>NTP cell‑phone RFR program overview: <a target="_blank" rel="noopener" href="https://ntp.niehs.nih.gov/research/topics/cellphones">NTP</a></li> <li>Ramazzini (Falcioni 2018): <a target="_blank" rel="noopener" href="https://pubmed.ncbi.nlm.nih.gov/29530389/">PubMed</a> • <a target="_blank" rel="noopener" href="https://www.sciencedirect.com/science/article/abs/pii/S0013935118300367">ScienceDirect</a></li> <li>WHO‑commissioned animal review (Mevissen 2025): <a target="_blank" rel="noopener" href="https://doris.bfs.de/jspui/bitstream/urn:nbn:de:0221-2025070953051/2/SL_Mevissen_2025_EffectsOfRadiofrequency_Eng.pdf">BfS Spotlight</a> • DOI: <a target="_blank" rel="noopener" href="https://doi.org/10.1016/j.envint.2025.109482">Environment International</a></li> <li>Male fertility SR (2024) + corrigendum (2025): <a target="_blank" rel="noopener" href="https://pubmed.ncbi.nlm.nih.gov/38492496/">PubMed</a> • <a target="_blank" rel="noopener" href="https://www.sciencedirect.com/science/article/pii/S0160412025002004">ScienceDirect</a></li> <li>Pregnancy/birth outcomes SR (2023) + BfS note: <a target="_blank" rel="noopener" href="https://pubmed.ncbi.nlm.nih.gov/37729852/">PubMed</a> • <a target="_blank" rel="noopener" href="https://doris.bfs.de/jspui/bitstream/urn:nbn:de:0221-2024061244261/5/SL_Cordelli_2024_EffectsOfRadiofrequency_Eng.pdf">BfS</a></li> <li>Oxidative stress review: <a target="_blank" rel="noopener" href="https://pubmed.ncbi.nlm.nih.gov/26151230/">Yakymenko 2015 (PubMed)</a></li> <li>Mechanism review (Int J Oncol 2021): <a target="_blank" rel="noopener" href="https://pubmed.ncbi.nlm.nih.gov/34617575/">PubMed</a></li> <li>Mechanistic synthesis (Frontiers 2025): <a target="_blank" rel="noopener" href="https://www.frontiersin.org/journals/public-health/articles/10.3389/fpubh.2025.1585441/full">Full text</a></li> <li>Denmark CNS trends (2023 + 2024 reports): <a target="_blank" rel="noopener" href="https://sundhedsdatastyrelsen.dk/media/16526/Kraefttilfaelde%202023.pdf">2023 PDF</a> • <a target="_blank" rel="noopener" href="https://sundhedsdatastyrelsen.dk/Media/638863629605245206/Kraefttilf%C3%A6lde_2024.pdf">2024 PDF</a></li> <li>47 U.S.C. §332(c)(7) (Section 704): <a target="_blank" rel="noopener" href="https://www.law.cornell.edu/uscode/text/47/332">Cornell LII</a></li> <li>Public Law 90‑602 statute PDF + FDA EPRC summary: <a target="_blank" rel="noopener" href="https://www.congress.gov/90/statute/STATUTE-82/STATUTE-82-Pg1173.pdf">Congress.gov</a> • <a target="_blank" rel="noopener" href="https://www.fda.gov/radiation-emitting-products/electronic-product-radiation-control-program">FDA EPRC</a></li> <li>EHT v. FCC (2021 remand): <a target="_blank" rel="noopener" href="https://www.fcc.gov/document/dc-circuit-decision-environmental-health-trust-v-fcc">FCC page</a> • <a target="_blank" rel="noopener" href="https://law.justia.com/cases/federal/appellate-courts/cadc/20-1025/20-1025-2021-08-13.html">Opinion</a></li> <li>NTP program status coverage: <a target="_blank" rel="noopener" href="https://microwavenews.com/news-center/ntp-quits-rf">Microwave News</a></li> <li>LiFi standard: <a target="_blank" rel="noopener" href="https://standards.ieee.org/ieee/802.11bb/11055/">IEEE 802.11bb</a></li> <li>Historical record (examples): Allan Frey (microwave hearing; BBB), Arthur Guy (dosimetry), Lai & Singh (DNA strand breaks), 1971 U.S. Navy bibliography, and CTIA/WTR internal “war‑gaming” memos.</li> </ol> <p class="muted">Educational content only. Not medical, legal, or engineering advice.</p> </section> <!-- CTA --> <section class="section card reveal" style="text-align:center"> <h2 style="margin:0 0 6px">The only case for your phone should be a TruthCase™</h2> <p style="max-width:880px;margin:0 auto"> A case should <strong>reduce exposure in real use</strong>—without making your phone transmit harder and without “99% everywhere” claims. TruthCase™ is built for <strong>physics</strong>, for <strong>people</strong>, and for a <strong>future</strong> where indoor connectivity relies more on light and less on microwaves. <br><br><em>TruthCase™ is QuantaCase® by RF SAFE.</em> </p> <div class="cta-row" style="justify-content:center"> <button class="btn primary" id="openModalBtn3" type="button">Select Your Phone</button> </div> </section> <footer style="text-align:center;color:var(--muted);font-size:14px"> <p><strong>RF SAFE</strong> introduced exposure‑reduction cases in the 1990s and continues to set a first‑principles standard: no metal loops, no magnets or plate steel, a shielded ear‑side aperture, antenna‑aware thin design, and ohmmeter‑verified shielding—paired with honest usage guidance.</p> <p>© RF SAFE — This page focuses on reducing RF (microwave) exposure in everyday device use.</p> </footer> </div> <!-- Sticky Mobile CTA --> <div class="mobile-cta" aria-hidden="false"> <button class="btn primary" id="openModalBtn4" type="button" aria-label="Select your phone (quick access)">Select Your Phone</button> </div> <!-- MODAL --> <div class="modal-backdrop" id="backdrop" aria-hidden="true"></div> <div class="modal" id="modal" aria-hidden="true"> <div class="modal-panel" role="dialog" aria-modal="true" aria-labelledby="modalTitle"> <div class="modal-head"> <h3 id="modalTitle" class="modal-title">Select Your Phone</h3> <button class="close" id="closeModalBtn" type="button" aria-label="Close">✕</button> </div> <p id="announce" class="sr-only" aria-live="polite"></p> <div class="form-row" id="manuRow" style="display:none"> <div> <label for="manuSelect">Manufacturer</label> <select id="manuSelect" aria-describedby="manuHelp"></select> <div id="manuHelp" class="helper">Choose a brand to filter models.</div> </div> <div id="modelCol" class="is-hidden"> <label for="modelSelect">Model</label> <select id="modelSelect" aria-describedby="modelHelp" disabled></select> <div id="modelHelp" class="helper">Pick your specific phone model.</div> </div> </div> <div class="form-row" id="modelOnlyRow" style="display:none"> <div style="grid-column:1/-1"> <label for="modelSelectSolo">Model</label> <select id="modelSelectSolo" aria-describedby="modelOnlyHelp"></select> <div id="modelOnlyHelp" class="helper">Models load from <code>truthcases.json</code>.</div> </div> </div> <div class="modal-actions" id="buyButtons" style="display:none"> <a class="btn" id="buyAmazonBtn" href="#" target="_blank" rel="noopener">Buy on Amazon</a> <a class="btn primary" id="buyDirectBtn" href="#" target="_blank" rel="noopener">Buy Now</a> </div> </div> </div> <!-- Toast --> <div id="toast" class="toast" role="status" aria-live="polite">Copied to clipboard.</div> <script> /* ---------- Utilities ---------- */ const $ = s => document.querySelector(s); const $$ = s => Array.from(document.querySelectorAll(s)); const norm = s => (s||'').toString().toLowerCase().replace(/\s+/g,' ').trim(); function unique(arr){ return [...new Set(arr)]; } function getQS(name){ try{ return new URL(location.href).searchParams.get(name); }catch{return null;} } function appendParam(urlStr, key, val){ if(!val) return urlStr; try{ const u=new URL(urlStr,location.href); u.searchParams.set(key,val); return u.toString(); } catch{ const sep=urlStr.includes('?')?'&':'?'; return urlStr+sep+encodeURIComponent(key)+'='+encodeURIComponent(val); } } /* ---------- Theme toggle (persist) ---------- */ const tAmber = $('#tAmber'); const tLight = $('#tLight'); function setTheme(mode){ document.documentElement.setAttribute('data-theme', mode); localStorage.setItem('truth_theme', mode); tAmber.setAttribute('aria-pressed', String(mode==='amber')); tLight.setAttribute('aria-pressed', String(mode==='light')); } (function initTheme(){ const saved = localStorage.getItem('truth_theme'); setTheme(saved || 'amber'); })(); tAmber.addEventListener('click', ()=>setTheme('amber')); tLight.addEventListener('click', ()=>setTheme('light')); /* ---------- State ---------- */ let DATA = { settings:{}, products:[] }; let manufacturers = []; let selectedManufacturer = ''; let filteredProducts = []; let affiliateRef = ''; let amazonTag = ''; /* ---------- DOM refs ---------- */ const openModalBtns = ['#openModalBtn','#openModalBtn2','#openModalBtn3','#openModalBtn4'].map(sel=>$(sel)).filter(Boolean); const backdrop = $('#backdrop'); const modal = $('#modal'); const closeModalBtn = $('#closeModalBtn'); const manuRow = $('#manuRow'); const manuSelect = $('#manuSelect'); const modelCol = $('#modelCol'); const modelOnlyRow = $('#modelOnlyRow'); const modelSelect = $('#modelSelect'); const modelSelectSolo = $('#modelSelectSolo'); const buyButtons = $('#buyButtons'); const buyDirectBtn = $('#buyDirectBtn'); const buyAmazonBtn = $('#buyAmazonBtn'); const announceEl = $('#announce'); /* ---------- Modal open/close with focus trap ---------- */ const focusable = `a[href],button:not([disabled]),select:not([disabled]),input:not([disabled]),[tabindex]:not([tabindex="-1"])`; let lastFocused = null; function trapFocus(e){ if(e.key !== 'Tab') return; const items = Array.from(modal.querySelectorAll(focusable)).filter(el=>el.offsetParent!==null); if(!items.length) return; const first = items[0], last = items[items.length - 1]; if(e.shiftKey && document.activeElement===first){ last.focus(); e.preventDefault(); } else if(!e.shiftKey && document.activeElement===last){ first.focus(); e.preventDefault(); } } function openModal(){ lastFocused = document.activeElement; document.body.classList.add('modal-open'); document.body.style.overflow='hidden'; backdrop.style.display='block'; modal.style.display='grid'; requestAnimationFrame(()=>{ backdrop.style.opacity='1'; modal.style.opacity='1'; }); modal.setAttribute('aria-hidden','false'); setTimeout(()=>{ (manuRow.style.display!=='none' ? manuSelect : modelSelectSolo).focus(); },30); document.addEventListener('keydown', trapFocus); } function closeModal(){ document.removeEventListener('keydown', trapFocus); document.body.classList.remove('modal-open'); document.body.style.overflow=''; backdrop.style.opacity='0'; modal.style.opacity='0'; modal.setAttribute('aria-hidden','true'); setTimeout(()=>{ backdrop.style.display='none'; modal.style.display='none'; }, 200); if(lastFocused && lastFocused.focus) lastFocused.focus(); } backdrop.addEventListener('click', closeModal); closeModalBtn.addEventListener('click', closeModal); openModalBtns.forEach(b=>b && b.addEventListener('click', openModal)); document.addEventListener('keydown', e=>{ if(e.key==='Escape' && modal.getAttribute('aria-hidden')==='false') closeModal(); }); /* ---------- Load data ---------- */ async function loadData(){ try{ const r = await fetch('truthcases.json',{cache:'no-store'}); if(!r.ok) throw new Error('HTTP '+r.status); const j = await r.json(); DATA = Object.assign({settings:{}, products:[]}, j||{}); if(!Array.isArray(DATA.products) || !DATA.products.length) throw new Error('No products in truthcases.json'); }catch(e){ console.warn('truthcases.json missing/invalid. Using demo.', e); DATA = { settings:{ defaultAffiliateParam:'ref', defaultAmazonTagParam:'tag' }, products:[ { manufacturer:'Apple', title:'TruthCase™ for iPhone 15 Pro Max (Black)', sku:'QC-IP15PM-BLK', asin:'B0DEMO1234', price:69.99, salePrice:59.99, buyUrl:'https://www.rfsafe.com/product/truthcase-iphone-15-pro-max/', affiliateId:'RFS_DEFAULT', amazonTag:'rfsafe-20' }, { manufacturer:'Samsung', title:'TruthCase™ for Galaxy S24 Ultra (Black)', sku:'QC-S24U-BLK', asin:'', price:69.99, salePrice:59.99, buyUrl:'https://www.rfsafe.com/product/truthcase-s24-ultra/', affiliateId:'RFS_DEFAULT', amazonTag:'' } ] }; } } /* ---------- Build selects ---------- */ function buildManufacturers(){ manufacturers = unique((DATA.products||[]).map(p => (p.manufacturer||'').trim()).filter(Boolean)); } function renderManufacturerSelect(){ manuSelect.innerHTML=''; const ph = document.createElement('option'); ph.value=''; ph.textContent='Choose manufacturer…'; manuSelect.appendChild(ph); manufacturers.forEach(m=>{ const o=document.createElement('option'); o.value=m; o.textContent=m; manuSelect.appendChild(o); }); manuSelect.value = selectedManufacturer || ''; } function renderModelSelect(list, el){ el.innerHTML=''; const ph = document.createElement('option'); ph.value=''; ph.textContent='Choose model…'; el.appendChild(ph); list.forEach((p,i)=>{ const o=document.createElement('option'); o.value=String(i); o.textContent=p.title || `Model ${i+1}`; el.appendChild(o); }); el.value=''; } /* ---------- Links ---------- */ function currentAffiliateRef(p){ return (affiliateRef || p.affiliateId || '').trim(); } function currentAmazonTag(p){ return (amazonTag || p.amazonTag || '').trim(); } function buildDirectUrl(p){ const base=(p.buyUrl||'').trim(); if(!base) return ''; const key=(DATA.settings && DATA.settings.defaultAffiliateParam) || 'ref'; return appendParam(base, key, currentAffiliateRef(p) || ''); } function buildAmazonUrl(p){ const asin=(p.asin||'').trim(); if(!asin) return ''; const key=(DATA.settings && DATA.settings.defaultAmazonTagParam) || 'tag'; const tag=currentAmazonTag(p); const base=`https://www.amazon.com/dp/${encodeURIComponent(asin)}`; return tag ? appendParam(base, key, tag) : base; } /* ---------- Select handlers ---------- */ const announce = msg => { const el=$('#announce'); if(el) el.textContent=msg||''; }; manuSelect.addEventListener('change', ()=>{ selectedManufacturer = manuSelect.value; filteredProducts = selectedManufacturer ? DATA.products.filter(p => (p.manufacturer||'').trim()===selectedManufacturer) : DATA.products.slice(); if(selectedManufacturer){ $('#modelCol').classList.remove('is-hidden'); modelSelect.disabled=false; renderModelSelect(filteredProducts, modelSelect); announce(`Manufacturer ${selectedManufacturer} selected. Choose a model.`); }else{ $('#modelCol').classList.add('is-hidden'); modelSelect.disabled=true; modelSelect.innerHTML=''; announce(`Manufacturer cleared. Please select a manufacturer.`); } buyButtons.style.display='none'; }); modelSelect.addEventListener('change', ()=>{ const idx=parseInt(modelSelect.value,10); if(Number.isFinite(idx) && idx>=0){ const p=filteredProducts[idx]; const dir=buildDirectUrl(p); const amz=buildAmazonUrl(p); if(amz){ buyAmazonBtn.href=amz; buyAmazonBtn.style.display='inline-flex'; } else { buyAmazonBtn.style.display='none'; } if(dir){ buyDirectBtn.href=dir; buyDirectBtn.style.display='inline-flex'; } else { buyDirectBtn.style.display='none'; } buyButtons.style.display=(amz||dir)?'flex':'none'; announce(`Model ${p.title} selected.`); }else{ buyButtons.style.display='none'; } }); modelSelectSolo.addEventListener('change', ()=>{ const idx=parseInt(modelSelectSolo.value,10); if(Number.isFinite(idx) && idx>=0){ const p=DATA.products[idx]; const dir=buildDirectUrl(p); const amz=buildAmazonUrl(p); if(amz){ buyAmazonBtn.href=amz; buyAmazonBtn.style.display='inline-flex'; } else { buyAmazonBtn.style.display='none'; } if(dir){ buyDirectBtn.href=dir; buyDirectBtn.style.display='inline-flex'; } else { buyDirectBtn.style.display='none'; } buyButtons.style.display=(amz||dir)?'flex':'none'; announce(`Model ${p.title} selected.`); }else{ buyButtons.style.display='none'; } }); /* ---------- Deep link ---------- */ function pickFromDeepLink(){ const qSku = getQS('sku'); const qAsin = getQS('asin'); const qManu = getQS('manu') || getQS('manufacturer'); const qModel= getQS('model') || getQS('title'); if(qSku){ const p = DATA.products.find(pr => pr.sku && norm(pr.sku)===norm(qSku)); if(p) return p; } if(qAsin){ const p = DATA.products.find(pr => pr.asin && norm(pr.asin)===norm(qAsin)); if(p) return p; } if(qModel){ let p = DATA.products.find(pr => norm(pr.title)===norm(qModel)); if(!p) p = DATA.products.find(pr => norm(pr.title).includes(norm(qModel))); if(p) return p; } if(qManu) return { __manuOnly:true, manufacturer:qManu }; return null; } /* ---------- Copy letter ---------- */ const toast = $('#toast'); $('#copyLetter').addEventListener('click', async ()=>{ try{ const txt = $('#letter').innerText.trim(); await navigator.clipboard.writeText(txt); toast.classList.add('show'); setTimeout(()=>toast.classList.remove('show'), 1600); }catch(err){ alert('Copy failed. Select and copy manually.'); } }); /* ---------- Init ---------- */ (async function init(){ // Affiliate overrides from URL (persist) const qRef=getQS('ref'); const qTag=getQS('atag'); if(qRef) localStorage.setItem('truthcase_ref', qRef); if(qTag) localStorage.setItem('truthcase_atag', qTag); affiliateRef = qRef || localStorage.getItem('truthcase_ref') || ''; amazonTag = qTag || localStorage.getItem('truthcase_atag') || ''; await loadData(); buildManufacturers(); if(manufacturers.length){ manuRow.style.display=''; modelOnlyRow.style.display='none'; renderManufacturerSelect(); $('#modelCol').classList.add('is-hidden'); modelSelect.disabled=true; }else{ manuRow.style.display='none'; modelOnlyRow.style.display=''; renderModelSelect(DATA.products, modelSelectSolo); } // Deep‑link auto‑selection (with manufacturer auto‑switch) const pick = pickFromDeepLink(); if(pick){ openModal(); if(pick.__manuOnly){ const manuName = manufacturers.find(m => norm(m)===norm(pick.manufacturer)) || pick.manufacturer; selectedManufacturer = manuName || ''; if(manufacturers.length){ manuSelect.value=selectedManufacturer; manuSelect.dispatchEvent(new Event('change')); } buyButtons.style.display='none'; }else{ if(manufacturers.length){ const manuName = pick.manufacturer || manufacturers.find(m => norm(m)===norm(pick.manufacturer)) || ''; manuSelect.value = manuName; manuSelect.dispatchEvent(new Event('change')); const idx = filteredProducts.findIndex(pr => norm(pr.title)===norm(pick.title)); const idx2 = idx>=0 ? idx : filteredProducts.findIndex(pr => norm(pr.title).includes(norm(pick.title))); if(idx2>=0){ modelSelect.value=String(idx2); modelSelect.dispatchEvent(new Event('change')); } }else{ const i = DATA.products.findIndex(pr => norm(pr.title)===norm(pick.title)); if(i>=0){ modelSelectSolo.value=String(i); modelSelectSolo.dispatchEvent(new Event('change')); } } } } // Reveal animation const io=new IntersectionObserver(es=>es.forEach(e=>{ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target);} }),{threshold:.12}); $$('.reveal').forEach(el=>io.observe(el)); })(); </script> </body> </html>
Save changes
Create folder
writable 0777
Create
Cancel