Compare commits

3 Commits

4 changed files with 126 additions and 1 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

+30
View File
@@ -0,0 +1,30 @@
*{box-sizing:border-box} :root{--paper:#f3f1e9;--ink:#20251f;--soft:#5d655b;--line:#c9cec0;--accent:#d6ec7a;--green:#526c36} html{background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;scroll-behavior:smooth} body{margin:0} button,a{-webkit-tap-highlight-color:transparent} button{font:inherit;color:inherit;cursor:pointer} a{color:inherit;text-underline-offset:4px} button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #749925;outline-offset:5px} button{background:none;border:0} [hidden]{display:none!important} .skip{position:fixed;top:-80px;left:20px;background:var(--accent);padding:14px;z-index:50}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.topbar{height:76px;display:flex;align-items:center;gap:36px;padding:0 4vw;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:3}.wordmark{text-decoration:none;font-weight:800;font-size:20px;letter-spacing:-1px;white-space:nowrap}.wordmark span{font-weight:400;color:var(--soft)}.project{font-size:12px;letter-spacing:.03em}.divider{padding:0 10px;color:#919787}.topbar nav{margin-left:auto;display:flex;gap:8px}.topbar button{font-size:12px;padding:10px 12px;border-radius:3px}.topbar button:hover{background:#e3e7d7}.topbar #reading-button{border:1px solid var(--ink)}
main{max-width:1800px;margin:auto}.slide{padding:42px 6vw 32px;min-height:calc(100svh - 138px);position:relative;display:flex;flex-direction:column;scroll-margin-top:20px}.slide h2{font-size:clamp(36px,4.25vw,70px);line-height:1.07;letter-spacing:-.045em;font-weight:500;margin:20px 0 38px;max-width:1200px}.slide em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.04em;color:var(--green)}p{margin:0 0 18px;line-height:1.5}h3{margin:0 0 10px;line-height:1.2} .overline,.small-label,.eyebrow,.cover-bottom,.source,.loop-return,.endline{font-size:12px;letter-spacing:.045em}.overline{text-transform:uppercase;color:var(--soft);margin:0;font-weight:600}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.large-copy{font-size:clamp(21px,2vw,28px);line-height:1.5;max-width:560px}.large-copy p+p{color:var(--soft)}.lined-list>div{border-top:1px solid var(--line);padding:17px 0}.lined-list h3{font-size:19px;font-weight:600}.lined-list p{font-size:17px;color:var(--soft);margin:0}.source{margin-top:auto;padding-top:26px;color:var(--soft);line-height:1.6;font-size:11px;letter-spacing:0;max-width:1100px}.statement{font-size:clamp(22px,2.4vw,34px);line-height:1.36;letter-spacing:-.02em;max-width:600px}.muted{color:var(--soft);font-size:14px;max-width:500px}.closing-line{border-top:1px solid var(--line);padding-top:20px;margin:26px 0 0;font-size:20px;max-width:1150px}.section-lede{font-size:18px;color:var(--soft);margin-top:-20px}.small-label{display:block;color:var(--green);text-transform:uppercase;font-weight:600;margin-bottom:20px}
.dark{background:var(--ink);color:var(--paper);--line:#58604f;--soft:#bdc3b2;--green:var(--accent)}.dark em{color:var(--accent)}.eyebrow{display:flex;justify-content:space-between;color:var(--soft)}.cover{padding-top:30px;min-height:calc(100svh - 138px)}.cover-body{position:relative;padding:44px 0 30px}.cover h1{font-size:clamp(55px,6.8vw,110px);font-weight:500;letter-spacing:-.055em;line-height:.99;margin:18px 0 24px;max-width:900px}.cover-lede{position:absolute;right:0;bottom:38px;width:27%;font-size:clamp(20px,2vw,28px);color:var(--soft);line-height:1.45}.cover-bottom{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:20px;margin-top:auto;color:var(--soft)}.thesis h2{font-size:clamp(46px,6.7vw,105px);margin:9vh 0 35px;line-height:1.07}.thesis-text{font-size:clamp(21px,2.2vw,30px);color:var(--soft);max-width:800px}.thesis-bottom{display:flex;gap:7vw;margin-top:35px;font-size:19px}.thesis-bottom p{line-height:1.6}
.audiences{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.audiences article{border-top:1px solid var(--line);padding-top:20px}.audiences h3{font-family:Georgia,serif;font-size:clamp(29px,3.3vw,48px);font-weight:400;letter-spacing:-.03em;line-height:1.1;margin-bottom:20px}.audiences p{font-size:18px;color:var(--soft);max-width:520px}.audiences .action-line{font-size:15px;border-top:1px solid var(--line);padding-top:15px;margin-top:26px}.example-tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-top:14px}.example-tabs button{font-size:15px;padding:12px 0;border-bottom:3px solid transparent}.example-tabs button[aria-selected=true]{border-bottom-color:var(--green);font-weight:bold}.example-panel{display:grid;grid-template-columns:.9fr 1.1fr;gap:5vw;padding:28px 0 0}.sample-hero{background:#e6eccf;padding:28px 30px}.sample-hero h3{font-family:Georgia,serif;font-size:clamp(29px,3.5vw,48px);font-weight:400;letter-spacing:-.035em;line-height:1.08;margin:0 0 20px}.sample-hero p{font-size:17px;margin:0;color:#4f5848}.script-list{list-style:none;margin:0;padding:0}.script-list li{font-size:18px;line-height:1.45;border-top:1px solid var(--line);padding:13px 0}.script-list li span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--soft);margin-bottom:5px}.cycle{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;margin-top:35px}.cycle>div{border-top:1px solid var(--line);padding-top:18px}.cycle span{font-family:Georgia,serif;font-size:52px;color:var(--accent)}.cycle h3{font-size:22px;margin:28px 0 15px}.cycle p{font-size:17px;color:var(--soft)}.loop-return{border-bottom:1px solid var(--line);padding:25px 0;margin:12px 0 0;font-size:18px;color:var(--accent);letter-spacing:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:18px;line-height:1.4}th,td{padding:17px 18px 17px 0;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);border-bottom:2px solid var(--ink)}tbody th{font-weight:600;width:23%}td{width:38%;color:var(--soft)}.rhythm-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw}.session{border-top:1px solid var(--line);padding-top:18px}.big-number{font-family:Georgia,serif;font-size:125px;line-height:1;margin:0 0 18px;color:var(--green)}.session h3{font-size:22px}.session p:not(.big-number){color:var(--soft);font-size:17px}.measurement{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:10px}.measurement>div{border-top:1px solid var(--line);padding-top:22px}.measurement h3{font-family:Georgia,serif;font-size:31px;font-weight:400;letter-spacing:-.02em;min-height:75px}.measurement p{font-size:18px;color:var(--soft);min-height:95px}.decision{font-size:14px;color:var(--green)}.proposal{border-top:1px solid var(--ink);display:grid;grid-template-columns:1fr 3fr;gap:28px;margin-top:28px;padding-top:20px}.proposal span{font-size:12px;text-transform:uppercase;letter-spacing:.05em}.proposal p{font-size:21px;margin:0}.sources-slide h2{margin-bottom:38px}.sources-list{list-style:none;padding:0;margin:16px 0}.sources-list li{font-size:17px;margin-bottom:19px;line-height:1.3}.sources-list span{display:block;font-size:14px;color:var(--soft);margin-top:5px}.endline{margin-top:auto;padding-top:30px;border-bottom:1px solid var(--line);padding-bottom:15px;color:var(--green)}
.controls{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:var(--paper);position:relative;border-top:1px solid var(--line);z-index:4}.chapter-name,.key-hint{font-size:12px;color:var(--soft);width:30%}.key-hint{text-align:right}.pager{display:flex;align-items:center;gap:24px}.pager button{font-size:26px;width:38px;height:40px}.pager button:hover{background:#e3e7d7}.pager button:disabled{opacity:.25;cursor:default}#slide-count{font-size:12px;letter-spacing:.08em;font-variant-numeric:tabular-nums}.progress{position:absolute;bottom:0;height:3px;left:0;width:100%;background:#e1e3d8}#progress-fill{height:3px;background:var(--green);display:block;transition:width .2s}.reading .slide{border-bottom:1px solid var(--line);min-height:760px;padding-bottom:55px}.reading .controls{position:sticky;bottom:0}.reading .key-hint{visibility:hidden}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:30px;width:min(600px,92vw);max-height:85vh}dialog::backdrop{background:#20251fa8;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top h2{font-size:29px;font-weight:500;margin:0}.dialog-top button{font-size:34px}.dialog-top+ol{list-style:none;padding:0;margin:25px 0 0}dialog li{border-top:1px solid var(--line)}dialog li button{width:100%;display:flex;gap:22px;text-align:left;padding:12px 8px;font-size:16px}dialog li span{color:var(--green);font-size:12px;width:22px}dialog li button:hover,dialog li button[aria-current=step]{background:#e3e7d7}
@media(min-width:1500px){.slide{padding-left:100px;padding-right:100px}.cover h1{font-size:110px}.slide h2{font-size:70px}.thesis h2{font-size:100px}}
@media(max-width:1000px){.topbar{gap:18px}.project{display:none}.slide{padding:35px 5vw}.slide h2{font-size:43px}.cover h1{font-size:72px}.cover-lede{font-size:21px;width:30%}.cycle{gap:18px}.cycle h3{font-size:19px}.cycle p{font-size:16px}.two-col{gap:5vw}.lined-list p{font-size:16px}.measurement{gap:22px}.measurement h3{font-size:27px}.measurement p{font-size:17px}}
@media(max-width:760px){.topbar{height:auto;min-height:66px;padding:12px 20px;gap:8px}.wordmark{font-size:17px}.topbar nav{gap:0}.topbar button{font-size:11px;padding:9px 8px}.topbar #print-button{display:none}.slide,.reading .slide{padding:32px 24px 36px;min-height:auto}.slide h2{font-size:38px;margin:20px 0 30px}.cover,.reading .cover{min-height:calc(100svh - 125px)}.eyebrow{font-size:10px;gap:15px}.eyebrow span{white-space:nowrap}.cover-body{padding:35px 0 20px}.cover h1{font-size:clamp(48px,10vw,75px)}.cover-lede{position:static;width:100%;font-size:20px;max-width:420px}.cover-bottom{font-size:10px;gap:15px;line-height:1.5}.two-col,.audiences,.example-panel,.rhythm-layout{grid-template-columns:1fr;gap:24px}.large-copy{font-size:22px}.statement{font-size:25px}.lined-list h3{font-size:19px}.lined-list p{font-size:17px}.source{font-size:11px;margin-top:15px}.thesis h2{font-size:43px;margin-top:45px}.thesis-text{font-size:22px}.thesis-bottom{display:block;font-size:18px;margin-top:20px}.audiences{gap:32px}.audiences h3{font-size:34px}.audiences .action-line{margin-top:18px}.closing-line{font-size:18px}.example-tabs{gap:20px}.example-tabs button{font-size:12px}.section-lede{font-size:17px;margin-top:-10px}.sample-hero{padding:24px}.sample-hero h3{font-size:36px}.script-list li{font-size:17px}.cycle{grid-template-columns:1fr;margin-top:10px;gap:0}.cycle>div{display:grid;grid-template-columns:44px 1fr;gap:0 20px;padding:18px 0}.cycle span{grid-row:span 2;font-size:34px}.cycle h3{margin:0 0 7px;font-size:22px}.cycle p{margin:0;font-size:17px}.loop-return{font-size:17px;padding-top:10px}.table-wrap{overflow:visible}table,tbody,tr,th,td{display:block;width:100%!important}thead{display:none}tr{border-top:1px solid var(--line);padding:12px 0}th,td{border:0;padding:5px 0;font-size:17px}td:before{content:'AI support: ';font-size:12px;font-weight:bold;color:var(--green)}td+td:before{content:'People: '}.big-number{font-size:88px}.measurement{grid-template-columns:1fr;gap:28px}.measurement h3,.measurement p{min-height:0}.measurement h3{font-size:31px}.measurement p{margin-bottom:12px}.proposal{grid-template-columns:1fr;gap:12px}.proposal p{font-size:20px}.controls{padding:0 20px;height:60px}.chapter-name{font-size:10px;width:42%}.key-hint{display:none}.pager{gap:12px}.sources-list li{font-size:16px}.sources-slide .two-col{gap:14px}dialog{padding:22px}dialog li button{padding:11px 0;font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{@page{size:A4 landscape;margin:12mm}html,body{background:white;color:black}.topbar,.controls,dialog,.example-tabs,.skip{display:none!important}.slide,.slide[hidden],.reading .slide{display:flex!important;page-break-after:always;break-after:page;min-height:170mm;padding:10mm 8mm;background:white!important;color:#171d16!important;border:0!important}.slide:last-child{break-after:auto}.slide h2{font-size:32pt;margin:8mm 0}.slide h1{font-size:48pt}.slide em,.dark em{color:#526c36}.slide p,.lined-list p,.dark p{color:#30382c}.cover-body{padding:5mm 0}.cover-lede{position:static;width:75%;font-size:18pt}.cover-bottom{color:#444}.slide .overline,.small-label,.eyebrow{font-size:9pt}.two-col{gap:10mm}.source{font-size:8pt}.example-panel[hidden]{display:grid!important}.example-panel{padding:5mm 0;gap:8mm;break-inside:avoid}.sample-hero{padding:5mm}.sample-hero h3{font-size:22pt}.sample-hero p,.script-list li{font-size:11pt}.script-list li{padding:2mm 0}.slide:has(.example-panel){break-inside:auto}.cycle p{color:#333}.cycle span{color:#526c36}.cycle{gap:6mm}.cycle h3{font-size:15pt}.thesis h2{font-size:45pt}.source a{color:#30382c}.measurement p{min-height:0}.sources-list li{font-size:12pt}.sources-list span{font-size:10pt}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.solutions{display:grid;grid-template-columns:1fr 1fr;gap:32px 5vw}.solutions article{display:flex;gap:22px;border-top:1px solid var(--line);padding-top:20px}.solution-number{font-family:Georgia,serif;font-size:34px;color:var(--green)}.solutions h3{font-size:23px;letter-spacing:-.02em}.solutions p{font-size:17px;color:var(--soft);margin-bottom:14px}.solution-purpose{font-size:13px;color:var(--green)}@media(max-width:760px){.solutions{grid-template-columns:1fr;gap:26px}.solutions h3{font-size:22px}}
body{padding-bottom:62px}.controls,.reading .controls{position:fixed;bottom:0;left:0;right:0}.reading #presentation{padding-bottom:0}@media(min-width:761px) and (max-height:800px){.topbar{height:64px}.slide{padding-top:26px;padding-bottom:25px;min-height:calc(100svh - 126px)}.slide h2{font-size:44px;margin:15px 0 27px}.lined-list>div{padding:12px 0}.lined-list h3{font-size:18px}.lined-list p{font-size:16px}.large-copy{font-size:23px}.statement{font-size:27px}.source{padding-top:18px}.cover-body{padding:28px 0 24px}.cover h1{font-size:76px}.cover-lede{font-size:24px;bottom:25px}.cover-bottom{padding-top:16px}.thesis h2{font-size:70px;margin-top:52px}.cycle{margin-top:20px}.cycle h3{margin:20px 0 10px}.solutions{gap:24px 5vw}.solutions article{padding-top:15px}.solutions h3{font-size:21px}.solutions p{font-size:16px}.example-panel{padding-top:20px}.sample-hero{padding:23px}.sample-hero h3{font-size:36px}.script-list li{font-size:16px;padding:11px 0}.big-number{font-size:100px}th,td{padding-top:13px;padding-bottom:13px;font-size:16px}.measurement h3{font-size:28px;min-height:66px}.measurement p{font-size:17px;min-height:75px}.closing-line{font-size:18px}.sources-list li{margin-bottom:14px}}@media print{body{padding-bottom:0}}
@media screen and (min-width:761px) and (max-height:800px){#starting-point .statement{font-size:25px;line-height:1.32}#starting-point .lined-list>div{padding:9px 0}#starting-point .proposal{margin-top:16px;padding-top:14px}#starting-point .proposal p{font-size:18px;line-height:1.4}}
/* Internal diagnostic revision */
.diagnostic-lede{font-size:clamp(23px,2.55vw,36px);line-height:1.4;max-width:1120px;margin:0 0 25px}.verdict-line{font-size:24px;border-top:1px solid var(--line);padding-top:22px}.brief-meta{display:flex;justify-content:space-between;font-size:13px;margin-top:30px;color:var(--soft)}.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 50px}.risk-grid article{display:flex;gap:22px;border-top:1px solid var(--line);padding-top:17px}.risk-number{font-size:30px;font-family:Georgia,serif;color:#9a432b}.risk-grid h3{font-size:23px}.risk-grid p{font-size:17px;color:var(--soft);margin-bottom:10px}.risk-grid strong{font-size:15px;font-weight:500;color:#9a432b}.price-proof{display:grid;grid-template-columns:auto 1fr;gap:18px 24px;align-items:center;margin:12px 0 25px}.price-proof strong{font-size:44px;letter-spacing:-.04em}.price-proof span{font-size:18px;color:var(--soft)}blockquote{font:30px/1.3 Georgia,serif;margin:0 0 15px;padding-left:22px;border-left:3px solid #9a432b}.quote-credit{font-size:12px;color:var(--soft)}.body-copy{font-size:19px}.finding-action{font-size:18px;border-top:1px solid var(--line);padding-top:18px;margin:24px 0 0}.evidence-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}.evidence-layout figure{margin:0}.evidence-layout img{display:block;width:100%;border:1px solid var(--line)}figcaption{font-size:11px;color:var(--soft);margin-top:9px}.two-track{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-top:15px}.two-track>div{border-top:1px solid var(--line);padding-top:20px}.two-track span{font-size:12px;color:var(--accent)}.two-track h3{font-size:25px;line-height:1.35;font-weight:500;margin-top:15px}.action-table>div{display:grid;grid-template-columns:1fr 1.8fr 1fr;gap:25px;padding:16px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.4}.action-table p{margin:0;color:var(--soft)}.action-table .action-head{font-size:11px;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--ink);padding-top:0}.example-flow{margin-top:20px}.example-flow span{color:var(--green)}.responsibility{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.responsibility b{font-size:14px}.responsibility p{font-size:15px;margin:5px 0 15px;color:var(--soft)}.diagnostic .source{max-width:1300px}.diagnostic#sources .sources-list li{margin-bottom:13px}
@media screen and (min-width:761px) and (max-height:800px){.diagnostic h2{font-size:42px;margin-bottom:25px}.diagnostic-lede{font-size:28px}.risk-grid{gap:20px 45px}.risk-grid p{font-size:16px}.risk-grid h3{font-size:21px}.evidence-layout{grid-template-columns:1.05fr 1fr}.evidence-layout .lined-list>div{padding:9px 0}.action-table>div{font-size:16px;padding:12px 0}.diagnostic .finding-action{font-size:17px;margin-top:19px;padding-top:15px}.diagnostic .solutions p{font-size:16px}.diagnostic .source{font-size:10px}.diagnostic#sources .lined-list p{font-size:15px}.diagnostic#sources .sources-list{margin-top:10px}.diagnostic#sources .sources-list li{font-size:16px;margin-bottom:12px}.diagnostic#sources .sources-list span{font-size:12px}}
@media(max-width:760px){.risk-grid,.evidence-layout,.two-track{grid-template-columns:1fr;gap:25px}.brief-meta{display:block;line-height:1.8}.brief-meta span{display:block}.diagnostic-lede{font-size:24px}.verdict-line{font-size:20px}.price-proof{grid-template-columns:1fr;gap:5px}.price-proof span{margin-bottom:12px}blockquote{font-size:27px}.action-table>div{grid-template-columns:1fr;gap:8px}.action-table .action-head{display:none}.action-table p:last-child:before{content:'Decision: ';font-weight:bold}.diagnostic .source{font-size:11px}.evidence-layout img{width:100%}}
.diagnostic h1{font-size:clamp(36px,4.25vw,70px);line-height:1.07;letter-spacing:-.045em;font-weight:500;margin:20px 0 38px;max-width:1200px}.diagnostic .source{margin-bottom:0}
@media screen and (min-width:761px) and (max-height:800px){.diagnostic h1{font-size:42px;margin:15px 0 25px}#learning-loop .lined-list h3,#sources .lined-list h3{margin-bottom:6px}#learning-loop .lined-list p,#sources .lined-list p{font-size:15px;line-height:1.4}#learning-loop .lined-list>div,#sources .lined-list>div{padding:10px 0}}
@media(max-width:760px){.diagnostic h1{font-size:38px;margin:20px 0 30px}}
.story-columns{display:grid;grid-template-columns:1fr 1.13fr;gap:6vw;margin-top:10px}.story-lead{font-size:27px;line-height:1.5;letter-spacing:-.015em}.story-body p{font-size:21px;line-height:1.55;margin:0 0 23px;color:var(--soft)}.story-byline{font-size:13px;color:var(--soft);margin-top:24px}.story-evidence{display:grid;grid-template-columns:1fr 1fr;gap:4vw}.story-evidence figure{margin:0}.story-evidence img{width:100%;border:1px solid var(--line)}.story-evidence .story-body p{font-size:18px;line-height:1.5;margin-bottom:16px}.story .source{font-size:11px;line-height:1.5}
@media screen and (min-width:761px) and (max-height:800px){.story-columns{gap:5vw;margin-top:4px}.story-lead{font-size:25px;line-height:1.45}.story-body p{font-size:20px;line-height:1.48;margin-bottom:20px}.story h2,.story h1{font-size:42px;margin-bottom:27px}.story-evidence .story-body p{font-size:17px;line-height:1.42;margin-bottom:14px}.story .source{font-size:10px;padding-top:14px}}
@media(max-width:760px){.story-columns,.story-evidence{grid-template-columns:1fr;gap:12px}.story-lead{font-size:23px;line-height:1.5}.story-body p{font-size:20px;line-height:1.55}.story-evidence .story-body p{font-size:19px}.story .source{font-size:11px}.story h2,.story h1{font-size:36px}}
+1 -1
View File
@@ -20,7 +20,7 @@ const description = 'Open tools and durable records for the Ministry of Influenc
<p class="lede">A home for open tools, structured records, and agent-readable work supporting the Ministry of Influence.</p>
<div class="grid">
<article><span class="number">01</span><h2>Evidence</h2><p>Records designed to show what was observed, where it came from, and how someone else can check it.</p><a href="https://git.influence.tools/Influence-Tools/Ministry">View the public repository →</a></article>
<article><span class="number">02</span><h2>Agents</h2><p>Clear structures and durable instructions so people and software can work from the same source of truth.</p><a href="https://git.influence.tools/Influence-Tools/Ministry/src/branch/main/PROVENANCE.md">Read the provenance record →</a></article>
<article><span class="number">02</span><h2>Agents</h2><p>Clear structures and durable instructions so people and software can work from the same source of truth.</p><a href="https://wiki.influence.tools">Read the operating wiki →</a></article>
<article><span class="number">03</span><h2>Republic OS</h2><p>A version-controlled substrate for representing public institutions, relationships, law, and change.</p><span class="muted">In development</span></article>
</div>
</main>
+95
View File
@@ -0,0 +1,95 @@
---
const chapters = ["The story so far", "The customer ONLC already understands", "The customer who gets left behind", "Why the price feels different", "What the student expects", "What the online presence communicates", "How people will find their next course", "The opportunity we see", "The lifestyle campaign", "Making the story easy to find", "One story, several ways to reach people", "How the work keeps improving", "What we still need to learn", "Where Hector and Fabio can help", "Sources and open questions"];
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Internal ONLC assessment: procurement strengths, consumer vulnerabilities, and opportunities in human content and AI search." />
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#f3f1e9" />
<link rel="icon" href="/favicon.svg" />
<title>ONLC — Internal findings & opportunities</title>
<style is:global>
@import url('/onlc/presentation.css');
</style>
</head>
<body>
<a class="skip" href="#presentation">Skip to presentation</a>
<header class="topbar">
<a class="wordmark" href="/">influence<span>.tools</span></a>
<span class="project">ONLC <span class="divider">/</span> Internal assessment</span>
<nav aria-label="Presentation tools">
<button id="contents-button" aria-haspopup="dialog">Contents</button>
<button id="reading-button" aria-pressed="true">Present</button>
<button id="print-button">Print / PDF</button>
</nav>
</header>
<main id="presentation" tabindex="-1">
<section class="slide diagnostic story dark" id="assessment" aria-labelledby="title-assessment"><p class="overline">01 / The story so far</p><h1 id="title-assessment">ONLC speaks to companies.<br /><em>We need it to speak to people.</em></h1><div class="story-columns"><p class="story-lead">ONLC has spent decades helping companies train their employees. Its website knows how to speak to a business that has a budget, a deadline, and people who need new skills.</p><div class="story-body"><p>But someone paying for their own education arrives with a different story. They may want a better job, a fresh start, or simply to feel more capable at work. Our research suggests that ONLC gives these people too little reassurance—and plenty of reasons to hesitate.</p><p>Our opportunity is to connect ONLC’s teaching with the life a person hopes to build.</p></div></div><p class="story-byline">An internal discussion for Hector Salazar and Fabio · September 2026</p><p class="source">Our reading of ONLC’s public materials. We still need its sales figures to understand how these issues affect the business.</p></section>
<section class="slide diagnostic story " id="b2b-engine" aria-labelledby="title-b2b-engine"><p class="overline">02 / The customer ONLC already understands</p><h2 id="title-b2b-engine">For the corporate buyer,<br /><em>the offer makes sense.</em></h2><div class="story-columns"><p class="story-lead">Imagine a manager who needs five employees trained before the next project begins. They already know what they need. They want dates, prices, a reliable provider, and a straightforward way for the company to pay.</p><div class="story-body"><p>ONLC is organized around that situation. Its course catalog, schedules, advisors, group training, and purchasing options help the manager get the job done. This is the established corporate market that ONLC knows how to serve.</p><p>The problem begins when that same approach is expected to persuade someone who is still deciding whether education is worth their own money.</p></div></div><p class="source"><a href="https://www.onlc.com/certification-computer-training.htm" target="_blank" rel="noopener">Learning Credits</a> · <a href="https://www.onlc.com/gsa-government-pricing-overview.htm" target="_blank" rel="noopener">Government purchasing</a> · <a href="https://www.onlc.com/register.htm" target="_blank" rel="noopener">Policies</a>. These services are publicly listed. We have not reviewed how much business they generate.</p></section>
<section class="slide diagnostic story " id="exposures" aria-labelledby="title-exposures"><p class="overline">03 / The customer who gets left behind</p><h2 id="title-exposures">An individual is buying<br /><em>the possibility of a better life.</em></h2><div class="story-columns"><p class="story-lead">A person looking for continuing education may be tired of feeling stuck. They may be returning to work, hoping for a promotion, or trying to keep up as their job changes. Before choosing a course, they need to believe that they belong and that the effort will be worthwhile.</p><div class="story-body"><p>ONLC’s online presence leads with software, course names, and schedules. The price can feel intimidating. The classroom format can be unclear. The people behind the teaching are easy to miss.</p><p>And as more people ask AI tools where and how to learn, ONLC also needs to appear in those conversations with something more helpful than a list of courses.</p></div></div><p class="source">Based on the pages, learner comments, and social posts we reviewed. We have not measured how many people these issues discourage.</p></section>
<section class="slide diagnostic story " id="self-payer" aria-labelledby="title-self-payer"><p class="overline">04 / Why the price feels different</p><h2 id="title-self-payer">When it is your own money,<br /><em>the question becomes personal.</em></h2><div class="story-columns"><p class="story-lead">ONLC lists AutoCAD Level 1 at $1,495 for three days and its novice course at $2,495 for five days. A company may treat that as a training expense. An individual has to decide what else they will give up to afford it.</p><div class="story-body"><p>One former attendee put the distinction plainly: they would consider the course with employer funding, but would study on their own if they had to pay personally. That comment is dated, but the objection is one we need to answer.</p><p>We need to show what the person receives for that money: a teacher who can explain, practice with guidance, and help when they get stuck. A list of topics does not make that value feel real.</p></div></div><p class="source"><a href="https://www.onlc.com/autocad-training-classes.htm" target="_blank" rel="noopener">ONLC prices</a> · <a href="https://www.onlc.com/training/excel/orlando-northeast-fl.htm" target="_blank" rel="noopener">Excel price example</a> · <a href="https://www.reddit.com/r/CompTIA/comments/cgi8oi/" target="_blank" rel="noopener">Dated learner account</a>. Other comments are positive: <a href="https://www.reddit.com/r/CompTIA/comments/llxiiv/" target="_blank" rel="noopener">2021 example</a>. The self-payment comment was posted in January 2023. These individual experiences do not tell us how all students feel. Prices vary; ONLC also offers less expensive classes.</p></section>
<section class="slide diagnostic story " id="delivery-gap" aria-labelledby="title-delivery-gap"><p class="overline">05 / What the student expects</p><h2 id="title-delivery-gap">People should understand<br /><em>the class before they arrive.</em></h2><div class="story-evidence"><figure><img src="/onlc/evidence/orlando-excel-2026-09-28.png" alt="Opening view of ONLC’s Orlando Excel page, emphasizing the local facility and instructor-led classes."/><figcaption>Orlando Excel page · 28 September 2026</figcaption></figure><div class="story-body"><p>The Orlando Excel page invites people to attend a local facility and describes instructor-led classes. In the opening view, it does not explain that the instructor will usually be teaching remotely.</p><p>That difference matters. Someone imagining a teacher in the room may feel disappointed by an experience they would otherwise have accepted—if it had been explained clearly.</p><p>A short, honest walkthrough could show the room, the screen, the instructor, and how students ask questions. The goal is simple: let people picture the experience before they pay.</p></div></div><p class="source"><a href="https://www.onlc.com/training/excel/orlando-northeast-fl.htm" target="_blank" rel="noopener">Local page</a> · <a href="https://www.onlc.com/rci-overview.htm" target="_blank" rel="noopener">Delivery model</a>. The wording could create confusion. We do not yet know how often students have been surprised or complained.</p></section>
<section class="slide diagnostic story " id="brand-social" aria-labelledby="title-brand-social"><p class="overline">06 / What the online presence communicates</p><h2 id="title-brand-social">We see courses for sale.<br /><em>We rarely meet the people.</em></h2><div class="story-columns"><p class="story-lead">In the social posts we reviewed, ONLC mostly announces courses and webinars. There is plenty of software branding and information about what is available. There is much less of the teacher, the student, or the moment when learning starts to make a difference.</p><div class="story-body"><p>Together with the catalog-like website, this makes ONLC feel practical but impersonal. Someone looking for a new direction needs more than a notice that a class is running.</p><p>The post about Andy teaching a nonprofit group points toward a better approach. It introduces a real person helping real people with something that matters to them.</p></div></div><p class="source"><a href="https://www.instagram.com/onlc.training/" target="_blank" rel="noopener">Instagram</a> · <a href="https://www.onlc.com/training/excel/orlando-northeast-fl.htm" target="_blank" rel="noopener">Sample landing page</a> · <a href="https://www.linkedin.com/feed/update/urn:li:activity:7506807485966761986/" target="_blank" rel="noopener">Community teaching post</a>. We reviewed a small public sample, including 12 recent Instagram items. We have not seen the team’s campaign results.</p></section>
<section class="slide diagnostic story " id="search-risk" aria-labelledby="title-search-risk"><p class="overline">07 / How people will find their next course</p><h2 id="title-search-risk">The search is becoming<br /><em>a conversation about someone’s life.</em></h2><div class="story-columns"><p class="story-lead">ONLC has pages for searches such as “Excel classes in Orlando.” Those pages help someone who already knows the course and location they want.</p><div class="story-body"><p>But a prospective student might now ask an AI tool: “I want to move into office work. What should I learn, and is a paid class worth it?” That person needs advice, comparisons, and a reason to trust the recommendation.</p><p>We want ONLC to be part of that answer. Its instructors have knowledge that could help. Our job is to turn that knowledge into useful, findable content that answers the questions people actually ask.</p></div></div><p class="source">This is a change to prepare for. We have not established that AI search has reduced ONLC’s traffic. <a href="https://www.onlc.com/training/excel/orlando-northeast-fl.htm" target="_blank" rel="noopener">Observed city page</a> · <a href="https://developers.google.com/search/docs/fundamentals/ai-optimization-guide" target="_blank" rel="noopener">Google’s current AI search guidance</a>. Google recommends useful original content and pages that are easy to find. Appearance in its answers is not guaranteed.</p></section>
<section class="slide diagnostic story dark" id="verdict" aria-labelledby="title-verdict"><p class="overline">08 / The opportunity we see</p><h2 id="title-verdict">ONLC has the teaching.<br /><em>It needs a more human story.</em></h2><div class="story-columns"><p class="story-lead">The corporate buyer can see how to buy training from ONLC. The individual learner has to work harder to see why ONLC matters to them. That is the gap we should build the campaign around.</p><div class="story-body"><p>We want to create a lifestyle campaign that connects education with everyday hopes: feeling confident at work, taking on a new responsibility, returning after time away, or opening up another career possibility.</p><p>The promise should come from real teaching and honest stories. We can show how learning helps people move forward without promising a promotion, a salary, or a job.</p></div></div><p class="source">Our assessment of the public materials. We have not measured how many individual learners are discouraged or how well each part of the business performs.</p></section>
<section class="slide diagnostic story " id="human-solutions" aria-labelledby="title-human-solutions"><p class="overline">09 / The lifestyle campaign</p><h2 id="title-human-solutions">Start with the life<br /><em>the student wants to change.</em></h2><div class="story-columns"><p class="story-lead">Picture someone who avoids applying for office jobs because they feel embarrassed about their computer skills. A course announcement asks them to choose a product. A story about another adult learning those skills helps them imagine taking the first step.</p><div class="story-body"><p>We could follow real learners, introduce patient instructors, and show useful skills in everyday situations. A teacher helping someone understand a spreadsheet can say more about ONLC than another software logo.</p><p>These are the stories we want to create and curate: what someone wanted to change, what made them nervous, how they learned, and what they can now do. Each story should lead naturally to a relevant class or a helpful conversation.</p></div></div><p class="source">The opening scenario is an example of the kind of story we could tell. Actual stories would feature consenting learners and their real experiences.</p></section>
<section class="slide diagnostic story " id="ai-discovery" aria-labelledby="title-ai-discovery"><p class="overline">10 / Making the story easy to find</p><h2 id="title-ai-discovery">When people ask for guidance,<br /><em>ONLC should have something useful to say.</em></h2><div class="story-columns"><p class="story-lead">The same questions that make good campaign stories can make useful website pages: “Am I too inexperienced for this class?” “Would self-study be enough?” “What happens if I fall behind?” “Will the teacher be in the room?”</p><div class="story-body"><p>We would publish clear answers with input from ONLC’s instructors, supported by demonstrations and accurate course details. We would also check that search services can access these pages and understand what they contain.</p><p>Then we would regularly ask relevant questions in Google’s AI results, ChatGPT, and other tools to see whether ONLC appears, what is being said, and where the information needs work. Appearance is something we improve and measure, never guarantee.</p></div></div><p class="source">Proposed work, informed by <a href="https://developers.google.com/search/docs/fundamentals/ai-optimization-guide" target="_blank" rel="noopener">Google guidance</a>. We would follow each service’s current guidance and check results over time.</p></section>
<section class="slide diagnostic story " id="connected-example" aria-labelledby="title-connected-example"><p class="overline">11 / One story, several ways to reach people</p><h2 id="title-connected-example">A small moment of progress<br /><em>can carry the whole idea.</em></h2><div class="story-columns"><p class="story-lead">For example, a campaign could follow a learner who wants to stop asking colleagues for help with a weekly spreadsheet. We would show the task that frustrates them, introduce the instructor, and capture the moment they understand how to do it.</p><div class="story-body"><p>A short video could introduce the story. A longer article could explain the skill and how the class works. A clear course page could help another person decide whether this is the right next step for them.</p><p>That gives social audiences a human reason to care and gives search tools a useful page to find. This is an illustrative idea; any learner story we publish would need a real participant and an honest account of their experience.</p></div></div><p class="source">A campaign idea for discussion, not an existing student story or a completed campaign.</p></section>
<section class="slide diagnostic story " id="learning-loop" aria-labelledby="title-learning-loop"><p class="overline">12 / How the work keeps improving</p><h2 id="title-learning-loop">The campaign should learn<br /><em>from the people it reaches.</em></h2><div class="story-columns"><p class="story-lead">We would keep creating, publishing, listening, and adjusting. Questions in comments and conversations with advisors would help us understand what people are worried about and what they still do not understand.</p><div class="story-body"><p>AI can help us organize those questions, prepare drafts, edit interviews, adapt content, and review results. Hector and the team would decide what matters, while ONLC’s experts keep the teaching accurate.</p><p>Over time, we would look beyond views and likes. Are people asking better questions? Are the right students contacting ONLC? Are more of them enrolling? Those answers should shape the next stories and the next changes to the website.</p></div></div><p class="source">We would first record where things stand, then agree what improvement should look like. A few AI-search checks cannot represent every user’s results.</p></section>
<section class="slide diagnostic story " id="evidence-needed" aria-labelledby="title-evidence-needed"><p class="overline">13 / What we still need to learn</p><h2 id="title-evidence-needed">We can see the communication gap.<br /><em>We still need the business story.</em></h2><div class="story-columns"><p class="story-lead">You have told us that ONLC is doing less well than it did a decade ago. We need to understand what has changed: fewer students, fewer repeat corporate purchases, smaller orders, or less profit from each class.</p><div class="story-body"><p>We also need to know who pays today. How many students pay personally? How many arrive through their employer? What do people tell an advisor when they decide not to enroll?</p><p>Those answers will help us choose where to begin and how to judge progress. In the meantime, we can already see opportunities to explain the classes better and make the people behind ONLC more visible.</p></div></div><p class="source">The reported decline comes from our initial briefing. ONLC’s records are needed to understand its size and causes.</p></section>
<section class="slide diagnostic story " id="priorities" aria-labelledby="title-priorities"><p class="overline">14 / Where Hector and Fabio can help</p><h2 id="title-priorities">Help people see a future<br /><em>they can take a step toward.</em></h2><div class="story-columns"><p class="story-lead">Our role is to bring the individual learner into ONLC’s story. We want someone to recognize their own situation, meet a teacher they could trust, and understand how a class might help them move forward.</p><div class="story-body"><p>Hector can guide which audiences and needs we focus on. Fabio and the content team can turn that direction into stories, interviews, useful advice, and a steady publishing program. ONLC provides the instructors, the student experiences, and the facts behind the promise.</p><p>We would begin with a small number of real learner needs, build the campaign around them, and keep improving it as we learn. The corporate business remains a strength. This work gives ONLC a stronger relationship with the person who actually wants to learn.</p></div></div><p class="source">The aim is to build relationships with individual learners while continuing to serve corporate customers.</p></section>
<section class="slide diagnostic " id="sources" aria-labelledby="title-sources"><p class="overline">15 / Sources and open questions</p><h2 id="title-sources">Where the story comes from.<br /><em>What we still need to check.</em></h2><div class="two-col"><div><h3>Observed / documented</h3><ul class="sources-list"><li><a href="https://www.onlc.com/autocad-training-classes.htm" target="_blank" rel="noopener">ONLC pricing</a><span>AutoCAD examples; accessed 28 September 2026.</span></li><li><a href="https://www.onlc.com/training/excel/orlando-northeast-fl.htm" target="_blank" rel="noopener">Orlando Excel landing page</a><span>Local messaging, price examples, and captured opening view.</span></li><li><a href="https://www.onlc.com/rci-overview.htm" target="_blank" rel="noopener">ONLC remote instruction overview</a><span>Instructor location and delivery model.</span></li><li><a href="https://www.reddit.com/r/CompTIA/comments/cgi8oi/" target="_blank" rel="noopener">ONLC attendee discussion</a><span>2019 thread; self-payment objection posted January 2023.</span></li><li><a href="https://www.reddit.com/r/CompTIA/comments/llxiiv/" target="_blank" rel="noopener">Positive ONLC comment</a><span>February 2021; counterexample to blanket negative sentiment.</span></li></ul></div><div class="lined-list"><div><h3>Public social sample</h3><p>12 Instagram items and five LinkedIn posts reviewed earlier on 28 September. A sample of content, not a performance audit.</p></div><div><h3>Search guidance</h3><p><a href="https://developers.google.com/search/docs/fundamentals/ai-optimization-guide" target="_blank" rel="noopener">Google Search Central</a> accessed 28 September 2026. Its advice supports making useful original content easy for search services to find.</p></div><div><h3>Still hypotheses</h3><p>How many people are put off, how profitable corporate training is, how often the class format causes complaints, and whether AI search has affected sales.</p></div><div><h3>Owner observation</h3><p>Business performance has weakened relative to a decade ago. No internal financial or channel data reviewed.</p></div></div></div><p class="source">Internal discussion for Hector Salazar and Fabio. Sources support our observations; ONLC’s data is needed to understand their effect on the business.</p></section>
</main>
<footer class="controls" aria-label="Slide navigation">
<span class="chapter-name" id="chapter-name">Internal assessment</span>
<div class="pager"><button id="previous" aria-label="Previous slide">←</button><span id="slide-count" aria-live="polite" aria-atomic="true">01 / 15</span><button id="next" aria-label="Next slide">→</button></div>
<span class="key-hint">Use ← → keys</span>
<div class="progress" aria-hidden="true"><span id="progress-fill"></span></div>
</footer>
<dialog id="contents-dialog" aria-labelledby="contents-title"><div class="dialog-top"><h2 id="contents-title">Contents</h2><button id="close-contents" aria-label="Close contents">×</button></div><ol>{chapters.map((chapter, i) => <li><button data-go={i}><span>{String(i + 1).padStart(2, '0')}</span>{chapter}</button></li>)}</ol></dialog>
<script>
const slides = [...document.querySelectorAll<HTMLElement>('.slide')];
const body = document.body;
const count = document.getElementById('slide-count')!;
const chapter = document.getElementById('chapter-name')!;
const progress = document.getElementById('progress-fill')!;
const previous = document.getElementById('previous') as HTMLButtonElement;
const next = document.getElementById('next') as HTMLButtonElement;
const readingButton = document.getElementById('reading-button') as HTMLButtonElement;
const dialog = document.getElementById('contents-dialog') as HTMLDialogElement;
const links = [...document.querySelectorAll<HTMLButtonElement>('[data-go]')];
let index = Math.max(0, slides.findIndex(s => s.id === location.hash.slice(1)));
let reading = matchMedia('(max-width: 760px)').matches;
function render(updateHash = true) {
slides.forEach((s, i) => { s.hidden = !reading && i !== index; s.classList.toggle('active', i === index); });
body.classList.toggle('presenting', !reading);
body.classList.toggle('reading', reading);
count.textContent = `${String(index + 1).padStart(2, '0')} / ${slides.length}`;
chapter.textContent = links[index].textContent!.replace(/^\d+/, '').trim();
progress.style.width = `${(index + 1) / slides.length * 100}%`;
previous.disabled = index === 0; next.disabled = index === slides.length - 1;
readingButton.textContent = reading ? 'Present' : 'Read all';
readingButton.setAttribute('aria-pressed', String(reading));
links.forEach((b,i) => b.setAttribute('aria-current', i === index ? 'step' : 'false'));
if (updateHash) history.replaceState(null, '', `#${slides[index].id}`);
}
function go(i: number) { index = Math.max(0, Math.min(slides.length-1,i)); render(); if(reading) slides[index].scrollIntoView({behavior: 'smooth', block:'start'}); else window.scrollTo(0,0); }
previous.addEventListener('click',()=>go(index-1)); next.addEventListener('click',()=>go(index+1));
readingButton.addEventListener('click',()=>{reading=!reading;render();if(reading)slides[index].scrollIntoView({block:'start'});else window.scrollTo(0,0)});
document.getElementById('print-button')!.addEventListener('click',()=>window.print());
document.getElementById('contents-button')!.addEventListener('click',()=>dialog.showModal());
document.getElementById('close-contents')!.addEventListener('click',()=>dialog.close());
links.forEach(b=>b.addEventListener('click',()=>{dialog.close();go(Number(b.dataset.go))}));
dialog.addEventListener('click',e=>{if(e.target===dialog){const r=dialog.getBoundingClientRect();if(e.clientX<r.left||e.clientX>r.right||e.clientY<r.top||e.clientY>r.bottom)dialog.close()}});
document.addEventListener('keydown',e=>{ if(reading||dialog.open||(e.target as HTMLElement).closest('input,textarea,select,[role="tab"]'))return; if(['ArrowRight','PageDown',' '].includes(e.key)){e.preventDefault();go(index+1)} if(['ArrowLeft','PageUp'].includes(e.key)){e.preventDefault();go(index-1)} if(e.key==='Home'){e.preventDefault();go(0)} if(e.key==='End'){e.preventDefault();go(slides.length-1)} });
window.addEventListener('hashchange',()=>{const found=slides.findIndex(s=>s.id===location.hash.slice(1));if(found>=0){index=found;render(false)}});
const tabs=[...document.querySelectorAll<HTMLButtonElement>('[data-sample]')];
function selectTab(t: HTMLButtonElement){tabs.forEach(b=>{const on=b===t;b.setAttribute('aria-selected',String(on));b.tabIndex=on?0:-1;document.getElementById(b.getAttribute('aria-controls')!)!.hidden=!on})}
tabs.forEach((t,i)=>{t.addEventListener('click',()=>selectTab(t));t.addEventListener('keydown',e=>{if(e.key==='ArrowRight'||e.key==='ArrowLeft'){e.preventDefault();const n=tabs[(i+(e.key==='ArrowRight'?1:tabs.length-1))%tabs.length];selectTab(n);n.focus()}})});
render(false);
</script>
</body>
</html>