1<!DOCTYPE html> 2<html lang="en" class="citrusos-booting"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6
6<script src="/scripts/effects/spaDashboardCsp.js"></script>
6 7
7<script src="/scripts/effects/themeBoot.js"></script>
7 8
8<script> 9 document.documentElement.classList.add('citrusos-booting'); 10 </script>
10 11 <link rel="preload" as="image" href="/images/CitrusOS/CitrusOS_logo.png"> 12 <style> 13 html.citrusos-booting body.page-citrusos { background: var(--citrusos-boot-bg, var(--site-boot-bg-dark, #0a0a0c)) !important; overflow: hidden; } 14 html.citrusos-booting #citrusos-shell, 15 html.citrusos-booting #citrusos-taskbar-dock, 16 html.citrusos-booting #citrusos-start-menu, 17 html.citrusos-booting #page-background, 18 html.citrusos-booting #aurora-overlay, 19 html.citrusos-booting #webgl-overlay { visibility: hidden !important; } 20 #citrusos-boot { 21 position: fixed; 22 inset: 0; 23 z-index: 99999; 24 display: flex; 25 align-items: center; 26 justify-content: center; 27 background: var(--citrusos-boot-bg, var(--site-boot-bg-dark, #0a0a0c)); 28 } 29 </style> 30 31 <title>CitrusOS</title> 32 <meta name="title" content="CitrusOS"> 33 <meta name="description" content="CitrusOS Devkit"> 34 <meta name="theme-color" content="#0d9488"> 35 <link rel="canonical" href="https://pupwife.com/"> 36 37 <meta property="og:type" content="website"> 38 <meta property="og:url" content="https://pupwife.com/"> 39 <meta property="og:title" content="CitrusOS"> 40 <meta property="og:description" content="CitrusOS Devkit"> 41 <meta property="og:image" content="https://pupwife.com/icons/notes.webp"> 42 43 <link href="css/dashboard.css" rel="stylesheet"> 44 <link href="css/theme.css" rel="stylesheet"> 45 <link href="css/theme-toggle.css" rel="stylesheet"> 46 <link href="css/citrusos.css?v=citrusos-wa-guard-20260928b" rel="stylesheet"> 47 <link href="css/citrusThemeTransition.css" rel="stylesheet"> 48 <link href="css/citrusTools.css?v=cookbook-print-20260910b" rel="stylesheet"> 49 <link href="css/citrusScrollbars.css" rel="stylesheet"> 50 <link href="css/citrusBirthday.css" rel="stylesheet"> 51 <link href="css/citrusAccount.css?v=citrus-account-wa-guard-20260928" rel="stylesheet"> 52 <link href="css/citrusSettings.css" rel="stylesheet"> 53 <link href="css/citrusChatroom.css" rel="stylesheet"> 54 <link href="css/citrusChatroomRetro.css" rel="stylesheet"> 55 <link href="css/musicCitrus.css" rel="stylesheet"> 56 <link href="css/musicPage.css" rel="stylesheet"> 57 <link href="css/musicPlayerChrome.css" rel="stylesheet"> 58 <link href="projects/chatroom/chatroom.css" rel="stylesheet"> 59 <link href="projects/chatroom/chatroomScrollbars.css" rel="stylesheet"> 60 <link href="css/chatroomConfirm.css" rel="stylesheet"> 61 <link href="css/chatroomSpaChrome.css" rel="stylesheet"> 62 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500;600&display=swap" crossorigin="anonymous"> 63 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" data-site-fontawesome="7"> 64 <link rel="icon" type="image/x-icon" href="/icons/notes.webp"> 65</head> 66<body class="dashboard page-citrusos"> 67
67<script src="/scripts/desktop/citrusBrowserZoom.js"></script>
67 68
68<script src="/scripts/effects/viewportSize.js"></script>
68 69 70 <!-- WebGL wallpaper --> 71 <div id="page-background" class="citrusos-browser-zoom-layer citrusos-browser-zoom-layer--viewport" style="position:fixed;inset:0;pointer-events:none;z-index:0;"></div> 72 <div id="aurora-overlay" class="citrusos-browser-zoom-layer citrusos-browser-zoom-layer--viewport" style="position:fixed;inset:0;pointer-events:none;z-index:0;"></div> 73 <div id="webgl-overlay" class="citrusos-browser-zoom-layer citrusos-browser-zoom-layer--viewport" style="position:fixed;inset:0;pointer-events:none;z-index:0;"></div> 74 75 <!-- Hidden theme toggle (tray button proxies clicks) --> 76 <button type="button" id="site-theme-toggle" class="site-theme-toggle" aria-label="Switch theme" hidden> 77 <i class="fa-solid fa-moon site-theme-toggle__icon site-theme-toggle__icon--moon" aria-hidden="true"></i> 78 <i class="fa-solid fa-sun site-theme-toggle__icon site-theme-toggle__icon--sun" aria-hidden="true" hidden></i> 79 </button> 80 81 <!-- Retro boot --> 82 <div id="citrusos-boot" aria-live="polite"> 83 <div class="citrusos-boot__screen"> 84 <div class="citrusos-boot__logo"> 85 <img 86 src="/images/CitrusOS/CitrusOS_logo.png" 87 alt="CitrusOS" 88 class="citrusos-boot__logo-img" 89 width="160" 90 height="160" 91 fetchpriority="high" 92 decoding="sync"> 93 <div class="citrusos-boot__ascii-wrap"> 94 <pre class="citrusos-boot__ascii" aria-hidden="true"></pre> 95 </div> 96 </div> 97 <pre class="citrusos-boot__log" aria-hidden="true"></pre> 98 <div class="citrusos-boot__bar" aria-hidden="true"><div class="citrusos-boot__fill"></div></div> 99 </div> 100 </div> 101 102 <!-- Mobile fallback --> 103 <div id="citrusos-mobile-fallback"> 104 <p><strong>CitrusOS</strong> works best on a wider screen :3c</p> 105 </div> 106 107 <div id="citrusos-shell"> 108 <div class="citrusos-browser-zoom-layer citrusos-browser-zoom-layer--desktop"> 109 <div id="citrusos-desktop" aria-label="Desktop"></div> 110 </div> 111 <div id="citrusos-widgets" aria-label="Desktop widgets"></div> 112 <div id="citrusos-windows" aria-label="Windows"></div> 113 </div> 114 115 <div id="citrusos-fullscreen" hidden aria-label="Fullscreen app"></div> 116 117 <!-- Start menu --> 118 <div id="citrusos-start-menu" hidden> 119 <div class="citrus-start-header"> 120 <img 121 src="/images/CitrusOS/CitrusOS_logo.png" 122 alt="CitrusOS" 123 class="citrus-start-header__logo" 124 width="120" 125 height="120" 126 decoding="async"> 127 </div> 128 <input type="search" id="citrusos-start-search" class="citrus-start-search" placeholder="Search apps and folders..." autocomplete="off" aria-label="Search apps and folders"> 129 <div id="citrusos-start-apps"></div> 130 </div> 131 132 <!-- Taskbar --> 133 <div id="citrusos-taskbar-dock"> 134 <div class="citrusos-browser-zoom-layer citrusos-browser-zoom-layer--dock"> 135 <div id="citrusos-taskbar-reveal" class="citrusos-taskbar-reveal" hidden aria-hidden="true"></div> 136 <footer id="citrusos-taskbar" role="toolbar" aria-label="Taskbar"> 137 <button type="button" id="citrusos-start-btn" aria-expanded="false" aria-controls="citrusos-start-menu" aria-label="Start menu"> 138 <img 139 src="/images/CitrusOS/CitrusOS_logo.png" 140 alt="" 141 class="citrusos-start-btn__logo" 142 width="28" 143 height="28" 144 decoding="async"> 145 </button> 146 <div id="citrusos-taskbar-apps" aria-label="Running apps"></div> 147 <div class="citrusos-tray-end"> 148 <div class="citrus-tray-music-wrap"> 149 <span id="citrusos-music-tray-label" class="citrus-tray-music-label" hidden></span> 150 <button type="button" id="citrusos-music-btn" class="citrus-tray-btn citrus-tray-music-btn" aria-label="Open Music" title="Music"> 151 <i class="fa-solid fa-music" aria-hidden="true"></i> 152 </button> 153 </div> 154 <button type="button" id="citrusos-settings-btn" class="citrus-tray-btn" aria-label="Settings" disabled> 155 <i class="fa-solid fa-gear" aria-hidden="true"></i> 156 </button> 157 <button type="button" id="citrusos-theme-btn" class="citrus-tray-btn" aria-label="Toggle theme"> 158 <i class="fa-solid fa-moon" aria-hidden="true"></i> 159 </button> 160 <div class="citrus-tray-clock" aria-label="Date and time">
161 <span id="citrusos-clock">--:--</span> 162 <span id="citrusos-date">---</span> 163 </div> 164 </div> 165 <button type="button" id="citrusos-show-desktop-btn" class="citrus-show-desktop-btn" aria-label="Show desktop" aria-pressed="false" title="Show desktop"></button> 166 </footer> 167 </div> 168 </div> 169 170
170<script src="/scripts/desktop/citrusShellManifest.js"></script>
170 171
171<script src="/scripts/desktop/citrusShellScripts.js"></script>
171 172</body> 173</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.