HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux host 6.8.0-107-generic #107-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 19:51:50 UTC 2026 x86_64
User: w230 (1248)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/w230/html/home.php
<!doctype html> <html lang="en"> <head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <title>Site Under Maintenance</title>
  <meta name="description" content="We're performing scheduled maintenance and will be back shortly." />
  <style>
    :root{
      --bg1:#0f172a; --bg2:#1e293b; --card:#0b1021F2;
      --text:#e5e7eb; --muted:#94a3b8;
      --accent:#4f46e5; --accent-2:#22d3ee; --success:#10b981;
      --glass: rgba(255,255,255,.06); --radius:20px; --shadow:0 10px 35px rgba(0,0,0,.45);
    }
    @media (prefers-color-scheme: light){
      :root{ --bg1:#f8fafc; --bg2:#e2e8f0; --card:#ffffffF2; --text:#0f172a; --muted:#334155; --glass:rgba(0,0,0,.04) }
      .gear line, .gear circle, .gear path{ stroke:#0f172a }
    }
    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0; color:var(--text); font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";
      background: radial-gradient(1200px 600px at 10% 10%, #1f2a5a 0%, transparent 60%),
                  radial-gradient(1000px 500px at 90% 20%, #0f766e 0%, transparent 60%),
                  linear-gradient(160deg, var(--bg1), var(--bg2));
      display:grid; place-items:center; padding:24px;
    }
    .wrap{ max-width:980px; width:100% }
    .card{
      background: linear-gradient(180deg, var(--card), var(--glass));
      border:1px solid rgba(255,255,255,.08);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden; position:relative;
      display:grid; grid-template-columns:1.2fr 1fr;
    }
    @media (max-width:900px){ .card{ grid-template-columns:1fr } }
    header{
      display:flex; align-items:center; gap:12px; padding:18px 22px; border-bottom:1px solid rgba(255,255,255,.08);
      background: linear-gradient(180deg, rgba(255,255,255,.06), transparent);
      backdrop-filter: blur(6px);
    }
    .logo{ width:40px; height:40px; border-radius:12px; background:linear-gradient(135deg, var(--accent), var(--accent-2));
      display:grid; place-items:center; color:white; font-weight:800; letter-spacing:1px; box-shadow: 0 8px 22px rgba(79,70,229,.35); }
    .brand{ font-size:18px; font-weight:700 }
    .subtitle{ color:var(--muted); font-size:13px }
    .content{ padding:28px 26px 26px }
    h1{ margin:0 0 10px; font-size: clamp(26px, 3.2vw, 36px); line-height:1.2 }
    p.lead{ margin:0 0 18px; color:var(--muted); font-size: clamp(14px, 2vw, 16px) }
    .status{ display:flex; align-items:center; gap:8px; font-size:14px; margin:10px 0 22px; color:#e2e8f0 }
    .dot{
      width:10px; height:10px; border-radius:999px; background: radial-gradient(circle at 30% 30%, #fff, var(--success) 30%);
      box-shadow: 0 0 0 0 rgba(16,185,129,.8); animation: pulse 2s infinite;
    }
    @keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(16,185,129,.7)} 70%{box-shadow:0 0 0 12px rgba(16,185,129,0)} 100%{box-shadow:0 0 0 0 rgba(16,185,129,0)} }
    .progress{ height:10px; background: rgba(255,255,255,.08); border-radius:999px; overflow:hidden; position:relative; margin: 10px 0 8px }
    .bar{
      height:100%; width:0%;
      background: linear-gradient(90deg, var(--accent), var(--accent-2));
      box-shadow: 0 8px 18px rgba(34,211,238,.25) inset;
      transition: width .8s ease;
    }
    .eta{ font-size:12px; color:var(--muted) }
    .cta{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:16px }
    .btn{
      appearance:none; border:none; cursor:pointer; font-weight:700; font-size:14px; padding:12px 16px; border-radius:12px;
      background:linear-gradient(135deg, var(--accent), var(--accent-2)); color:white;
      box-shadow: 0 10px 22px rgba(79,70,229,.35); transition: transform .12s ease, box-shadow .2s ease;
      text-decoration:none; display:inline-flex; align-items:center; gap:8px;
    }
    .btn:hover{ transform: translateY(-1px); box-shadow: 0 14px 26px rgba(79,70,229,.45) }
    .btn.secondary{ background:transparent; color:var(--text); border:1px solid rgba(255,255,255,.16); box-shadow:none }
    .aside{
      position:relative; min-height:280px; display:grid; place-items:center;
      background:
        radial-gradient(400px 150px at 80% 15%, rgba(79,70,229,.25), transparent 70%),
        radial-gradient(250px 120px at 20% 85%, rgba(34,211,238,.2), transparent 70%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      border-left:1px solid rgba(255,255,255,.08); padding:22px;
    }
    @media (max-width:900px){ .aside{ border-left:none; border-top:1px solid rgba(255,255,255,.08) } }
    .gear{ width:min(360px, 90%); height:auto; filter: drop-shadow(0 16px 36px rgba(0,0,0,.4)) }
    .gear .spin-slow{ animation: spin 12s linear infinite }
    .gear .spin-fast{ animation: spin 6s linear infinite reverse }
    @keyframes spin{ from{transform:rotate(0)} to{transform:rotate(360deg)} }
    footer{ text-align:center; color:var(--muted); font-size:12px; padding:16px 10px 0 }
    .links{ display:flex; justify-content:center; gap:14px; margin-top:8px; flex-wrap:wrap }
    .links a{ color:inherit; opacity:.85; text-decoration:none; border-bottom:1px dotted rgba(148,163,184,.5) }
    .links a:hover{ opacity:1; border-bottom-color: transparent }
    .visually-hidden{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
  </style> </head> <body>
  <main class="wrap" role="main" aria-labelledby="title">
    <section class="card" role="region" aria-label="Maintenance Notice">
      <!-- LEFT -->
      <div class="content">
        <header>
          <div class="logo" aria-hidden="true">IT</div>
          <div>
            <div class="brand">Your Brand</div>
            <div class="subtitle">Infrastructure — Service Status</div>
          </div>
        </header>
        <h1 id="title">Web ll be right back.</h1>
        <p class="lead">
          Web are upgrading our systems to make your experience faster, safer, and more reliable.
          Thanks for your patience. This page will auto-refresh when web are back online.
        </p>
        <div class="status" aria-live="polite" aria-atomic="true">
          <span class="dot" aria-hidden="true"></span>
          <span id="status-text">Maintenance in progress</span>
        </div>
        <div class="progress" aria-label="Maintenance progress" aria-valuemin="0" aria-valuemax="100">
          <div class="bar" id="bar" role="progressbar" aria-valuenow="0"></div>
        </div>
        <div class="eta" id="eta">Estimating time</div>
        <div class="cta">
          <button class="btn" id="retry">Try Now</button>
          <a class="btn secondary" href="mailto:support@example.com">Contact Support</a>
          <a class="btn secondary" href="/" id="home">Go to Homepage</a>
        </div>
        <footer>
          <div>В© <span id="year"></span> Your Brand. All rights reserved.</div>
          <div class="links">
            <a href="#" onclick="return false;">Status Page</a>
            <a href="#" onclick="return false;">Security</a>
            <a href="#" onclick="return false;">Twitter</a>
          </div>
        </footer>
      </div>
      <!-- RIGHT -->
      <aside class="aside" aria-hidden="true">
        <svg class="gear" viewBox="0 0 300 300" fill="none" stroke="#e5e7eb" stroke-width="3" aria-hidden="true">
          <defs>
            <linearGradient id="g1" x1="0" x2="1">
              <stop offset="0" stop-color="rgba(79,70,229,.7)"/>
              <stop offset="1" stop-color="rgba(34,211,238,.7)"/>
            </linearGradient>
          </defs>
          <!-- Outer gear -->
          <g class="spin-slow">
            <circle cx="150" cy="150" r="80" stroke="url(#g1)"/>
            <g>
              <!-- teeth -->
              <g>
                <!-- 12 teeth -->
                <g transform="rotate(0 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(30 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(60 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(90 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(120 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(150 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(180 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(210 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(240 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(270 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(300 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
                <g transform="rotate(330 150 150)"><rect x="146" y="53" width="8" height="26" rx="3" fill="url(#g1)"/></g>
              </g>
            </g>
          </g>
          <!-- Inner gear -->
          <g class="spin-fast">
            <circle cx="150" cy="150" r="38" stroke="url(#g1)"/>
            <g>
              <g transform="rotate(0 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(45 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(90 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(135 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(180 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(225 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(270 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
              <g transform="rotate(315 150 150)"><rect x="148" y="97" width="4" height="16" rx="2" fill="url(#g1)"/></g>
            </g>
          </g>
        </svg>
      </aside>
    </section>
  </main>
  <script>
    // Year
    document.getElementById('year').textContent = new Date().getFullYear();
    // Nice looping progress w/ ETA text
    const bar = document.getElementById('bar');
    const eta = document.getElementById('eta');
    let pct = 0, dir = 1;
    function tick(){
      pct += dir * (Math.random() * 6 + 2); // 2–8% steps
      if(pct >= 96){ dir = -1 }
      if(pct <= 8){ dir = 1 }
      bar.style.width = Math.max(0, Math.min(100, pct)).toFixed(0) + '%';
      bar.setAttribute('aria-valuenow', Math.round(pct));
      eta.textContent = (pct < 50) ? 'Applying updates…' :
                        (pct < 80) ? 'Running checks…' :
                        'Warming up services…';
    }
    setInterval(tick, 900);
    // Auto-ping: replace /healthz with your endpoint that returns 200 when live
    async function ping(){
      try{
        const res = await fetch('/healthz', {cache:'no-store'});
        if(res.ok){ location.reload(); }
      }catch(e){ /* ignore until next check */ }
    }
    // Check every 15s
    setInterval(ping, 15000);
    // Buttons
    document.getElementById('retry').addEventListener('click', () => location.reload());
    document.getElementById('home').addEventListener('click', e => {
      // Keep link but prevent navigating to a broken home during maintenance if same origin
      if(location.pathname === '/'){ e.preventDefault(); }
    });
  </script> </body> </html>