1<!doctype html> 2<html lang="de"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/svg+xml" href="/logo.svg" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 <title>safeOS</title> 8 <!-- Self-hosted fonts for the campaign completion certificate (Kampagnen-Zertifikat). 9 Same-origin so html-to-image can embed them into the exported PDF. --> 10 <link rel="stylesheet" href="/fonts/certificate-fonts.css" /> 11 <style> 12 /* Minimal initial loader styles (no app CSS required) */ 13 #initial-loader { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: #ffffff; z-index: 9999; transition: opacity 320ms ease, visibility 320ms ease; } 14 #initial-loader.is-hiding { opacity: 0; visibility: hidden; } 15 #initial-loader .box { display: flex; flex-direction: column; align-items: center; gap: 16px; } 16 #initial-loader .loader-logo { width: 150px; height: auto; } 17 #initial-loader .progress { width: 320px; height: 8px; background: #e5e7eb; border-radius: 999px; overflow: hidden; } 18 #initial-loader .bar { width: 40%; height: 100%; background: #0ea5e9; border-radius: 999px; animation: initial-loader-indeterminate 1.2s infinite ease-in-out; } 19 @keyframes initial-loader-indeterminate { 20 0% { transform: translateX(-120%); } 21 50% { transform: translateX(10%); } 22 100% { transform: translateX(140%); } 23 } 24 </style> 25
25<script type="module" crossorigin src="/assets/index-c2PABjuS.js"></script>
25 26 <link rel="modulepreload" crossorigin href="/assets/datefns-BAflKSlV.js"> 27 <link rel="modulepreload" crossorigin href="/assets/vue-datepicker-CpIdsRIT.js"> 28 <link rel="stylesheet" crossorigin href="/assets/index-CA6ZDIrA.css"> 29 </head> 30 <body class="bg-background text-text"> 31 <!-- Initial loading screen (sits above the SPA until we fade it out) --> 32 <div id="initial-loader"> 33 <div class="box"> 34 <img src="/logo-full.svg" alt="safeOS Logo" class="loader-logo" /> 35 <div class="progress"><div class="bar"></div></div> 36 </div> 37 </div> 38 39 <main id="app" class="h-screen"></main> 40 </body> 41</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.