Add Met. Add Ala. Then stop.
HTML for this example
Select the code and use your copy shortcut. Changes in this preview are temporary.
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="color-scheme" content="light"><title>Add Met. Add Ala. Then stop.</title><style>*{box-sizing:border-box}body{margin:0;background:var(--bg,#f2f5f4);color:#203039;font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;--accent:#24635b;--soft:#e1eeea}main{max-width:1000px;margin:auto;padding:32px}header{padding-bottom:20px;border-bottom:1px solid #becbc8;margin-bottom:22px}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}h1{font-size:clamp(28px,4.7vw,44px);line-height:1.12;letter-spacing:-.045em;margin:10px 0 14px;max-width:830px}h2{font-size:22px;line-height:1.25;margin:0 0 16px}h3{font-size:17px;margin:0 0 9px}p{margin:8px 0 12px}header p{font-size:18px;max-width:760px}.fiction{font-size:13px;color:#52636a;display:block;margin-top:12px}.paper,.panel{background:#fff;border:1px solid #c5d1cf;border-radius:12px;padding:24px;min-width:0}.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.note{border-left:4px solid var(--accent);padding:16px 20px;background:var(--soft);margin:18px 0}.note p:last-child{margin-bottom:0}.muted,small{color:#52636a;font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}button{font:inherit;font-weight:650;min-height:44px;border:1px solid #81958f;background:#fff;color:#203039;padding:9px 15px;border-radius:7px;cursor:pointer}button:hover{background:var(--soft)}button[aria-pressed=true],#check{background:var(--accent);color:#fff;border-color:var(--accent)}button:disabled{opacity:.55;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b96000;outline-offset:3px}label{display:block;font-size:14px;font-weight:700;margin:12px 0 6px}select,input{font:inherit;width:100%;min-height:44px;border:1px solid #81958f;border-radius:6px;padding:9px;background:#fff;color:#203039;min-width:0}input[type=checkbox]{width:20px;min-height:20px}.feedback{padding:14px 18px;background:var(--soft);border-radius:8px;min-height:53px}.large{font-size:clamp(36px,6vw,60px);font-weight:750;line-height:1.1;letter-spacing:-.05em}.metric{padding:22px;background:var(--accent);color:#fff;border-radius:12px}.metric small{color:#fff}.metric p{margin:8px 0 0}.metric.secondary{background:#e1e9e7;color:#203039}.metric.secondary small{color:#384f4b}.agenda{border-top:1px solid #becbc8;margin-top:28px;padding-top:24px}.agenda h2 span{float:right;font:14px system-ui;color:#52636a}.agenda ol{padding:0;list-style:none}.agenda li{display:grid;grid-template-columns:65px 1fr 48px;gap:16px;border-bottom:1px solid #d5dfdc;padding:14px 0}.agenda p{margin-bottom:0;font-size:14px}.time{color:var(--accent);font-variant-numeric:tabular-nums}svg{width:100%;height:auto;display:block}svg text{font-family:system-ui,sans-serif;fill:#203039}figure{margin:0}figcaption{font-size:14px;margin-top:12px}table{width:100%;border-collapse:collapse;font-size:14px;margin:14px 0}th,td{padding:12px 10px;text-align:left;border-bottom:1px solid #d2dcd9;vertical-align:top;overflow-wrap:anywhere}th{background:var(--soft);font-size:12px;text-transform:uppercase;letter-spacing:.035em}.mobile-label{display:none}.blank{padding:16px 0;border-bottom:1px dashed #879992;color:#52636a}.view{margin:16px 0}[hidden]{display:none!important}details{border-top:1px solid #bccac5;padding:15px 0;margin-top:18px}summary{cursor:pointer;font-weight:700;min-height:44px}a{color:var(--accent)}footer{border-top:1px solid #bdcbc6;padding-top:18px;margin-top:30px;font-size:13px;color:#52636a}.tag{display:inline-block;padding:3px 8px;font-size:12px;background:var(--soft);border-radius:4px;font-weight:700}.formula{font-family:ui-monospace,Consolas,monospace;background:#eaf0ed;padding:15px;border-radius:6px;overflow-wrap:anywhere}.strip{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.strip span{border:1px solid #bccac5;border-radius:5px;padding:6px 10px;font-size:14px}.scene{background:#fbf7ed;padding:20px;border-radius:12px}.sentence{font:clamp(23px,4vw,34px)/1.5 Georgia,serif;padding:20px 0}.accent{color:var(--accent);font-weight:750}.bar{height:18px;background:#e2e9e6;border-radius:4px;overflow:hidden}.bar span{display:block;height:100%;background:var(--accent)}.path{font-size:17px;line-height:1.8;padding:16px;background:#fff;border:1px solid #bccac5;border-radius:8px;overflow-wrap:anywhere}.diagram-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.node{padding:15px;background:var(--soft);border:1px solid #8ea79d;border-radius:10px;font-weight:700}.study{padding:14px;background:#fff;border-bottom:3px solid var(--accent)}.study svg{height:86px}.studio{--bg:#f6f1e6;--accent:#78502d;--soft:#efe3cf}.studio h1{font-family:Georgia,serif;font-weight:500}.stage{--bg:#f0edf4;--accent:#654378;--soft:#e8def0}.rhythm{--bg:#eef2fa;--accent:#3c4d86;--soft:#e4e9f8}.rhythm-grid{display:grid;grid-template-columns:85px repeat(4,1fr);gap:4px;margin:14px 0}.rhythm-grid>*{padding:13px 6px;text-align:center;background:#fff;border:1px solid #c8d1e4}.rhythm-grid .changed{background:#f5dfa0;font-weight:750}.beat{font-size:22px}.position{background:#eef1f0;border-radius:8px;padding:20px}.tokens{display:flex;flex-wrap:wrap;gap:8px;min-height:60px}.ordered{padding:18px;border:2px dashed #91a699;border-radius:8px;min-height:82px;margin:18px 0;font-size:24px}.parcel-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.parcel-row button{padding:10px 3px;font-size:12px}.parcel-row svg{height:64px;margin:0 auto 6px}.ribbon{padding:12px 0;display:grid;grid-template-columns:65px 1fr 58px;gap:12px;align-items:center}.ribbon .bar{height:27px;border-radius:0;background:transparent}.ribbon .bar span{background:#718e66}.ribbon:nth-child(2) .bar span{background:#8868a5}.ribbon:nth-child(3) .bar span{background:#3f7f99}.cell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.cell{border:2px solid #90aaba;border-radius:50%;padding:20px;background:#f3f8fb;text-align:center;min-height:115px}.chromosome{display:inline-block;padding:4px;margin:4px;color:#254f73;border:1px solid #90aaba;border-radius:8px;font-size:15px;font-weight:700}.codons{display:flex;gap:8px;flex-wrap:wrap}.codon{border:1px solid #a9bab2;background:#fff;border-radius:8px;padding:12px;text-align:center;min-width:80px}.codon.current{border:3px solid var(--accent);padding:10px}.codon b{font:28px ui-monospace,monospace;letter-spacing:.12em}.periodic{display:grid;grid-template-columns:65px repeat(3,1fr);gap:8px;align-items:stretch;margin:16px 0}.element{padding:12px!important;background:#eaf1ed}.element strong{display:block;font-size:44px}.element small{display:block}.omitted{border:1px dashed #94a89e;padding:15px;color:#52636a;font-size:13px}.receipt{border-top:5px solid var(--accent);background:#fff;padding:28px}.number-list{font-variant-numeric:tabular-nums}.travel{--bg:#edf4f6;--accent:#235d76;--soft:#dfeef3}.travel .timetable{border-left:5px solid var(--accent);background:#fff;padding:20px}.readiness{display:grid;grid-template-columns:140px 1fr;gap:8px 18px}.readiness dt{font-size:13px;font-weight:700}.readiness dd{margin:0;padding-bottom:10px;border-bottom:1px solid #d6dfda}.request-card{border:1px solid #bfd0c7;background:#fff;border-left:5px solid var(--accent);padding:20px;margin:16px 0}.grid-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:720px){main{padding:22px}.pair{gap:14px}.paper,.panel{padding:18px}.trio{grid-template-columns:1fr}.grid-form{grid-template-columns:1fr}.readiness{grid-template-columns:115px 1fr}.rhythm-grid>*{padding:12px 3px;font-size:13px}.beat{font-size:19px}}@media(max-width:520px){main{padding:16px}.pair{grid-template-columns:1fr}.agenda li{grid-template-columns:48px 1fr 38px;gap:8px}.agenda h2 span{float:none;display:block;margin-top:8px}.parcel-row{gap:4px}.parcel-row button{font-size:10px;min-width:0}.parcel-row svg{height:46px}.periodic{grid-template-columns:40px repeat(3,1fr);gap:4px}.periodic button{font-size:12px;padding:8px 3px!important}.periodic .element strong{font-size:34px}.periodic small{font-size:11px}.periodic .omitted{padding:10px 5px;font-size:11px}thead{display:none}table,tbody,tr,td{display:block;width:100%}tr{border-bottom:1px solid #bdcec5;padding:8px 0}td{border:0;padding:7px 4px}.mobile-label{display:block;font-size:11px;font-weight:750;color:#52636a}.cell{padding:12px}.cell-grid{gap:8px}.readiness{grid-template-columns:1fr;gap:3px}.rhythm-grid{grid-template-columns:65px repeat(4,1fr);gap:2px}.rhythm-grid>*{font-size:11px;padding:12px 2px}.ribbon{grid-template-columns:57px 1fr 48px;gap:6px}}@media print{main{max-width:none;padding:0}body{background:#fff}button,.actions{display:none}.view[hidden]{display:block!important}.paper{break-inside:avoid}}</style></head><body class=""><main><header><span class="eyebrow">Toy mRNA · standard genetic code 1</span><h1>Add Met. Add Ala. Then stop.</h1><p>5′-AUG GCU UAA-3′ produces the illustrative two-residue trace Met–Ala. UAA terminates; it never becomes a third amino acid.</p><span class="fiction">Original illustrative example · local practice; answers are not stored</span></header><section class="paper"><div class="strip"><span>5′ → 3′</span><span>Declared frame: base 1</span><span>Positions 1–9</span></div><div id="codons" class="codons"></div><div class="pair" style="margin-top:22px"><div><span class="eyebrow">Current positions and codon</span><h2 id="current" class="large"></h2><p id="question"></p><label for="answer">Code-table result / action</label><select id="answer"><option value="">Choose an answer</option><option>Methionine (Met)</option><option>Alanine (Ala)</option><option>Termination</option><option>Add a “Stop” amino acid</option></select></div><div class="metric secondary"><small>Peptide trace after checked additions</small><p id="peptide" class="large" style="font-size:34px">Empty</p><p id="step-state">Not checked</p></div></div><div class="actions"><button id="check">Check and apply step</button><button id="next">Next codon</button><button id="reset">Reset sequence</button></div><p id="feedback" class="feedback" role="status"></p></section><details><summary>Alternate grouping from base 2</summary><p class="formula">UGG | CUU | AA</p><p>The final AA is incomplete. No base is added to complete it. This grouping comparison does not claim biological initiation at base 2.</p></details><aside class="note"><strong>Lookup convention</strong><p>NCBI’s code table displays T: AUG→ATG, GCU→GCT, UAA→TAA. Keep the supplied mRNA written with U. This is a toy sequence, not an identified natural protein or specimen analysis.</p></aside><footer>Changes and practice answers last only on this page. Keep actual observations, decisions and records in your established school, document or spreadsheet workflow.</footer></main><script>const $=id=>document.getElementById(id);const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));const status=s=>{$('feedback').textContent=s;};
const sequence=[{"codon":"AUG","positions":"1–3","result":"Methionine (Met)","residue":"Met"},{"codon":"GCU","positions":"4–6","result":"Alanine (Ala)","residue":"Ala"},{"codon":"UAA","positions":"7–9","result":"Termination","residue":null}];let step=0,peptide=[],checked=false,terminated=false;function validateMRNA(raw){if(!/^[ACGU]+$/.test(raw))return {error:'Use only A, C, G and U; invalid characters remain uncorrected.'};if(raw.length%3)return {error:'Incomplete triplet; no bases invented.'};return {valid:true};}function render(){const x=sequence[step];$('codons').innerHTML=sequence.map((c,i)=>'<div class="codon '+(i===step?'current':'')+'"><small>'+c.positions+'</small><br><b>'+c.codon+'</b></div>').join('');$('current').textContent=x.codon;$('question').textContent='Positions '+x.positions+': '+(step===2?'What happens now?':step===1?'What is added next?':'Which code-table result applies?');$('peptide').textContent=peptide.length?peptide.join('–'):'Empty';$('step-state').textContent=terminated?'Terminated · two residues':checked?'This step applied':'Not checked';$('next').disabled=!checked||terminated||step===2;$('check').disabled=checked;}$('answer').addEventListener('change',()=>{if(!checked)status('Answer selected. Check and apply this step.');});$('check').addEventListener('click',()=>{const a=$('answer').value,x=sequence[step];if(!a){status('Unanswered. Choose the table result or action.');return;}if(a!==x.result){status('Revise. At positions '+x.positions+', '+x.codon+' gives '+x.result+'. Stop is not an amino acid.');return;}checked=true;if(x.residue)peptide.push(x.residue);else terminated=true;render();status(step===2?'Termination. Retain Met–Ala; no amino acid is added.':x.codon+' → '+x.result+'. Trace: '+peptide.join('–')+'.');});$('next').addEventListener('click',()=>{if(!checked||terminated||step>=2)return;step++;checked=false;$('answer').value='';render();status('Unanswered. Inspect the next three bases.');});$('reset').addEventListener('click',()=>{step=0;peptide=[];checked=false;terminated=false;$('answer').value='';render();status('Reset to base-1 frame, AUG, empty peptide and unanswered state.');});globalThis.Model={sequence,validateMRNA,getState:()=>({step,peptide:[...peptide],checked,terminated})};render();status('Unanswered. Inspect AUG at positions 1–3.');</script></body></html>