learn and share notes on atproto (wip) 🦉 malfestio.stormlightlabs.org/
readability solid axum atproto srs
at main 195 lines 6.8 kB view raw
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>Malfestio - Coming Soon</title> 8 <meta name="description" 9 content="Coming soon: Master complex topics with spaced repetition, linked notes, and active recall. Share your decks, notes, and discoveries with the community."> 10 11 <!-- Open Graph --> 12 <meta property="og:type" content="website"> 13 <meta property="og:url" content="https://malfestio.stormlightlabs.org/"> 14 <meta property="og:title" content="Malfestio — Learning on the AT Protocol"> 15 <meta property="og:description" 16 content="Coming soon: Master complex topics with spaced repetition, linked notes, and active recall. Share your decks, notes, and discoveries with the community."> 17 <meta property="og:image" content="https://malfestio.stormlightlabs.org/og-image.png"> 18 19 <!-- Twitter Card --> 20 <meta name="twitter:card" content="summary_large_image"> 21 <meta name="twitter:url" content="https://malfestio.stormlightlabs.org/"> 22 <meta name="twitter:title" content="Malfestio — Learning on the AT Protocol"> 23 <meta name="twitter:description" 24 content="Coming soon: Master complex topics with spaced repetition, linked notes, and active recall. Share your decks, notes, and discoveries with the community."> 25 <meta name="twitter:image" content="https://malfestio.stormlightlabs.org/og-image.png"> 26 27 <link rel="icon" type="image/svg+xml" 28 href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='2em' height='2em' viewBox='0 0 24 24'><path fill='%232859c5' d='M12 14.327q2.394 0 4.197-1.445T18 9.173q0-.959-.348-1.795t-.975-1.474q-1.735.108-2.956 1.296Q12.5 8.389 12.5 10.116h-1q0-1.727-1.23-2.92Q9.038 6.004 7.294 5.93q-.599.638-.947 1.461T6 9.173q0 2.264 1.803 3.709T12 14.327M8.75 9.904q-.31 0-.52-.21t-.21-.52t.21-.521t.52-.21t.52.21t.21.52t-.21.52q-.209.21-.52.21m6.5 0q-.31 0-.52-.209q-.21-.21-.21-.52t.21-.521q.209-.21.52-.21t.52.21q.21.209.21.52q0 .31-.21.52q-.209.21-.52.21M12 21q-2.931 0-4.966-2.084Q5 16.83 5 13.885V9.173q0-2.69 2.092-4.431T12 3q2.68 0 4.84 1.696T19 9.173V20h-1q-1.558 0-2.664-1.106t-1.105-2.663v-1.212q-.25.074-.5.122l-.5.095v1q0 1.974 1.395 3.369T18 21z'/></svg>"> 29 <link rel="preconnect" href="https://fonts.googleapis.com"> 30 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 31 <link 32 href="https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600&family=Lora:wght@400;500;600&display=swap" 33 rel="stylesheet"> 34 <style> 35 * { 36 margin: 0; 37 padding: 0; 38 box-sizing: border-box; 39 } 40 41 :root { 42 --layer-00: #161616; 43 --layer-01: #1e1e1e; 44 --layer-02: #262626; 45 --layer-03: #2c2c2c; 46 --duration-normal: 250ms; 47 --easing-standard: cubic-bezier(0.4, 0, 0.2, 1); 48 } 49 50 body { 51 font-family: 'Figtree', sans-serif; 52 font-weight: 300; 53 background: #000000; 54 min-height: 100vh; 55 display: flex; 56 align-items: center; 57 justify-content: center; 58 color: #ffffff; 59 padding: 2rem; 60 position: relative; 61 overflow: hidden; 62 } 63 64 .grid-pattern { 65 position: absolute; 66 inset: 0; 67 background-size: 32px 32px; 68 background-image: 69 linear-gradient(to right, rgba(85, 85, 85, 0.3) 1px, transparent 1px), 70 linear-gradient(to bottom, rgba(85, 85, 85, 0.3) 1px, transparent 1px); 71 pointer-events: none; 72 } 73 74 .gradient-overlay { 75 position: absolute; 76 inset: 0; 77 background: linear-gradient(to top, transparent, rgba(0, 0, 0, 0.3), #000000); 78 pointer-events: none; 79 } 80 81 .container { 82 max-width: 700px; 83 text-align: center; 84 animation: fadeIn 0.8s var(--easing-standard); 85 position: relative; 86 z-index: 1; 87 } 88 89 @keyframes fadeIn { 90 from { 91 opacity: 0; 92 transform: translateY(20px); 93 } 94 95 to { 96 opacity: 1; 97 transform: translateY(0); 98 } 99 } 100 101 h1 { 102 font-family: 'Lora', serif; 103 font-size: 5rem; 104 font-weight: 500; 105 margin-bottom: 1rem; 106 letter-spacing: -0.02em; 107 line-height: 1.1; 108 } 109 110 .tagline { 111 font-family: 'Lora', serif; 112 font-size: 1.75rem; 113 font-weight: 400; 114 margin-bottom: 3rem; 115 color: #a3a3a3; 116 } 117 118 .description { 119 font-size: 1.125rem; 120 line-height: 1.8; 121 margin-bottom: 3rem; 122 color: #a3a3a3; 123 font-weight: 300; 124 } 125 126 .status { 127 font-family: 'Figtree', sans-serif; 128 font-size: 0.75rem; 129 font-weight: 500; 130 text-transform: uppercase; 131 letter-spacing: 0.1em; 132 padding: 0.75rem 1.5rem; 133 background: var(--layer-02); 134 border: 1px solid var(--layer-03); 135 border-radius: 0.125rem; 136 display: inline-block; 137 transition: all var(--duration-normal) var(--easing-standard); 138 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); 139 } 140 141 .bsky-link { 142 color: #3b82f6; 143 text-decoration: none; 144 transition: color var(--duration-normal) var(--easing-standard); 145 } 146 147 .bsky-link:hover { 148 color: #60a5fa; 149 } 150 151 .bsky-link:visited { 152 color: #60a5fa; 153 } 154 155 .footer { 156 margin-top: 4rem; 157 font-size: 0.875rem; 158 color: #737373; 159 font-weight: 300; 160 } 161 162 @media (max-width: 768px) { 163 h1 { 164 font-size: 3rem; 165 } 166 167 .tagline { 168 font-size: 1.25rem; 169 } 170 171 .description { 172 font-size: 1rem; 173 } 174 } 175 </style> 176</head> 177 178<body> 179 <div class="grid-pattern"></div> 180 <div class="gradient-overlay"></div> 181 <div class="container"> 182 <h1>Malfestio</h1> 183 <div class="tagline"> 184 Learning on the AT Protocol 185 </div> 186 <p class="description"> 187 Coming Soon 188 </p> 189 <div class="footer"> 190 Check out <a class="bsky-link" href="https://bsky.app/profile/desertthunder.dev">Bluesky</a> for updates 191 </div> 192 </div> 193</body> 194 195</html>