<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><title>Seedgrade</title><style>*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#101110;color:#eee;font:15px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100svh;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:grid;place-items:center}main{width:min(100%,560px)}h1{font-size:27px;letter-spacing:-.6px;margin:0}p{margin:6px 0}.brand{display:flex;align-items:center;gap:14px}.brand img{width:64px;height:64px;border-radius:15px}.muted{color:#aeb3ac}.version{font-size:14px}.release{margin-top:18px}.release strong{font-size:15px}.release time{display:block;font-size:12px;color:#aeb3ac;margin-top:3px}.notes{margin:12px 0 16px;line-height:1.4}.install{display:block;text-align:center;background:#e4e8df;color:#111;border-radius:14px;padding:14px;font-weight:650;text-decoration:none;font-size:18px}nav{text-align:center;margin:12px 0}a{color:#dbe3d3;text-underline-offset:3px}footer{font-size:11px;line-height:1.4;text-align:center;color:#aeb3ac}footer p{margin:3px 0}.history{display:block;min-height:100svh}.history main{margin:auto}.history h1{margin:16px 0}.history article{border-top:1px solid #30342d;padding:16px 0}.history ul{padding-left:20px}.history time{font-size:13px;color:#aeb3ac}@media(max-height:540px) and (orientation:landscape){main{width:min(100%,850px);display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;align-items:center}.brand img{width:48px;height:48px}.brand h1{font-size:23px}.release{margin:0}.notes{grid-column:1;margin:0;font-size:13px}.actions{grid-column:2;grid-row:1/3}.install{padding:12px}nav{margin:9px 0}footer{grid-column:1/-1}.history main{display:block}}@media(max-height:580px) and (orientation:portrait){.brand img{width:48px;height:48px}.release{margin-top:10px}.notes{margin:8px 0 12px}nav{margin:8px 0}}</style></head><body><main><header class="brand"><img src="icon.png" alt="Seedgrade icon"><div><h1>Seedgrade</h1><p class="version muted">Version 1.0 · Build 432</p></div></header><section class="release" data-published="2026-10-22T07:50:59.714249+00:00"><strong id="age"></strong><time datetime="2026-10-22T07:50:59.714249+00:00">Oct 22, 2026 · 07:50 UTC</time></section><p class="notes">Old Tape is now the first Tape preset, with your tuned settings.</p><div class="actions"><a class="install" href="itms-services://?action=download-manifest&amp;url=https%3A%2F%2Fseedgrade-ios-ota.pages.dev%2Finstall-432.xml">Install update · 35.4 MB</a><nav><a href="history.html">Release history</a></nav></div><footer><p>Open in Safari on a registered iPhone with Developer Mode enabled.</p><p>Install over the existing app. Profile expires Sep 12, 2027.</p></footer></main><script>(()=>{const stamp=Date.parse(document.querySelector('[data-published]').dataset.published);const age=document.getElementById('age');function update(){let seconds=Math.max(0,Math.floor((Date.now()-stamp)/1000));let value=seconds,unit='second';if(seconds>=86400){value=Math.floor(seconds/86400);unit='day'}else if(seconds>=3600){value=Math.floor(seconds/3600);unit='hour'}else if(seconds>=60){value=Math.floor(seconds/60);unit='minute'}age.textContent=value+' '+unit+(value===1?'':'s')+' ago'}update();setInterval(update,1000);document.addEventListener('visibilitychange',()=>{if(!document.hidden)update()});window.addEventListener('pageshow',e=>{if(e.persisted)location.reload();else update()})})();</script></body></html>