Inboxes List

Create an inbox to save and track emails. It's free!

+New inbox

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1.0, viewport-fit=cover" name="viewport"/>
  <title>
   Data Deletion Warning | Action Required
  </title>
  <style>
   * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            background: linear-gradient(145deg, #eef2f5 0%, #e2e8f0 100%);
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            line-height: 1.5;
            padding: 32px 16px;
            min-height: 100vh;
            animation: bgPulse 8s infinite ease-in-out;
        }

        @keyframes bgPulse {
            0% { background: linear-gradient(145deg, #eef2f5 0%, #e2e8f0 100%); }
            50% { background: linear-gradient(145deg, #ffe8e8 0%, #fee2e2 100%); }
            100% { background: linear-gradient(145deg, #eef2f5 0%, #e2e8f0 100%); }
        }

        .email-container {
            max-width: 560px;
            width: 100%;
            margin: 0 auto;
            background-color: #ffffff;
            border-radius: 28px;
            box-shadow: 0 25px 45px -12px rgba(0, 0, 0, 0.25);
            overflow: hidden;
            animation: slideUpFade 0.6s cubic-bezier(0.2, 0.9, 0.4, 1.1);
            transition: transform 0.2s ease;
        }

        @keyframes slideUpFade {
            0% {
                opacity: 0;
                transform: translateY(30px);
            }
            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .email-container:hover {
            transform: scale(1.01);
        }

        /* Header */
        .email-header {
            background: #ffffff;
            padding: 32px 24px 20px 24px;
            text-align: center;
            border-bottom: 1px solid #eceff3;
            position: relative;
            overflow: hidden;
        }

        .email-header::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 4px;
            background: linear-gradient(90deg, #dc2626, #f97316, #dc2626);
            animation: headerGlow 3s infinite ease-in-out;
        }

        @keyframes headerGlow {
            0% { left: -100%; }
            50% { left: 0%; }
            100% { left: 100%; }
        }

        .logo-icon {
            width: 56px;
            height: 56px;
            background: linear-gradient(135deg, #f0f7ff, #e0edfa);
            border-radius: 28px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 16px;
            animation: float 3s infinite ease-in-out;
        }

        @keyframes float {
            0% { transform: translateY(0px); }
            50% { transform: translateY(-5px); }
            100% { transform: translateY(0px); }
        }

        .brand-name {
            font-size: 22px;
            font-weight: 700;
            background: linear-gradient(135deg, #1a2c3e, #2d4a6e);
            background-clip: text;
            -webkit-background-clip: text;
            color: transparent;
            letter-spacing: -0.3px;
        }

        /* Content */
        .email-content {
            padding: 32px 28px;
        }

        /* Warning badge with pulse */
        .warning-badge {
            background: #fee2e2;
            color: #b91c1c;
            font-size: 12px;
            font-weight: 800;
            padding: 6px 14px;
            border-radius: 40px;
            display: inline-block;
            margin-bottom: 18px;
            letter-spacing: 0.8px;
            animation: pulseWarning 1.5s infinite;
        }

        @keyframes pulseWarning {
            0% { box-shadow: 0 0 0 0 rgba(185, 28, 28, 0.4); background: #fee2e2; }
            70% { box-shadow: 0 0 0 8px rgba(185, 28, 28, 0); background: #fecaca; }
            100% { box-shadow: 0 0 0 0 rgba(185, 28, 28, 0); background: #fee2e2; }
        }

        h1 {
            font-size: 28px;
            font-weight: 800;
            color: #0f172a;
            margin-bottom: 12px;
            letter-spacing: -0.3px;
            animation: titleGlitch 0.3s ease-out;
        }

        @keyframes titleGlitch {
            0% { opacity: 0; transform: translateX(-8px); }
            100% { opacity: 1; transform: translateX(0); }
        }

        .subhead {
            font-size: 15px;
            color: #334155;
            margin-bottom: 28px;
            padding-bottom: 8px;
            border-bottom: 1px solid #eef2f6;
        }

        /* Alert box with shimmer */
        .alert-box {
            background: linear-gradient(135deg, #fff5f5, #fff0f0);
            border-left: 4px solid #dc2626;
            border-radius: 18px;
            padding: 20px 22px;
            margin-bottom: 28px;
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .alert-box::after {
            content: '';
            position: absolute;
            top: 0;
            left: -150%;
            width: 150%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(220, 38, 38, 0.08), transparent);
            animation: shimmer 4s infinite;
        }

        @keyframes shimmer {
            0% { left: -150%; }
            50% { left: 100%; }
            100% { left: 100%; }
        }

        .alert-label {
            font-size: 12px;
            font-weight: 800;
            text-transform: uppercase;
            color: #b91c1c;
            margin-bottom: 10px;
            letter-spacing: 0.8px;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .alert-label span {
            display: inline-block;
            animation: shake 0.5s ease-in-out infinite;
        }

        @keyframes shake {
            0%, 100% { transform: rotate(0deg); }
            25% { transform: rotate(5deg); }
            75% { transform: rotate(-5deg); }
        }

        .alert-text {
            font-size: 16px;
            color: #7f1d1d;
            line-height: 1.5;
        }

        .alert-text strong {
            background: #ffe0e0;
            padding: 3px 12px;
            border-radius: 30px;
            font-weight: 800;
            display: inline-block;
            animation: highlightPulse 1.2s infinite;
        }

        @keyframes highlightPulse {
            0% { background: #ffe0e0; transform: scale(1); }
            50% { background: #fecaca; transform: scale(1.02); }
            100% { background: #ffe0e0; transform: scale(1); }
        }

        /* Data card with row animations */
        .data-card {
            border: 1px solid #edf2f7;
            border-radius: 20px;
            overflow: hidden;
            margin-bottom: 24px;
            background: #ffffff;
        }

        .data-header {
            background: linear-gradient(135deg, #fafcff, #f5f9fe);
            padding: 14px 20px;
            border-bottom: 1px solid #edf2f7;
            font-weight: 700;
            font-size: 14px;
            color: #1e293b;
        }

        .data-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 14px 20px;
            border-bottom: 1px solid #f0f4f9;
            transition: all 0.3s ease;
            animation: rowFadeIn 0.5s ease-out backwards;
        }

        .data-row:nth-child(2) { animation-delay: 0.1s; }
        .data-row:nth-child(3) { animation-delay: 0.2s; }
        .data-row:nth-child(4) { animation-delay: 0.3s; }
        .data-row:nth-child(5) { animation-delay: 0.4s; }

        @keyframes rowFadeIn {
            from {
                opacity: 0;
                transform: translateX(-15px);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        .data-row:hover {
            background: #fffbf5;
            transform: translateX(5px);
            transition: all 0.2s ease;
        }

        .data-row:last-child {
            border-bottom: none;
        }

        .row-label {
            display: flex;
            align-items: center;
            gap: 12px;
            font-weight: 500;
            color: #1e2a3e;
        }

        .row-status {
            font-size: 12px;
            font-weight: 700;
            padding: 4px 14px;
            border-radius: 40px;
            transition: all 0.2s;
        }

        .status-critical {
            background: #fee2e2;
            color: #b91c1c;
            animation: statusBlink 2s infinite;
        }

        @keyframes statusBlink {
            0%, 100% { opacity: 1; background: #fee2e2; }
            50% { opacity: 0.8; background: #fecaca; }
        }

        .status-warning {
            background: #fff3e3;
            color: #b45309;
        }

        /* Info note with gentle bounce */
        .info-note {
            background: #fefce8;
            border: 1px solid #fde68a;
            border-radius: 16px;
            padding: 14px 20px;
            margin-bottom: 28px;
            font-size: 13px;
            color: #854d0e;
            display: flex;
            align-items: center;
            gap: 10px;
            animation: softBounce 2s infinite ease-in-out;
            transform-origin: center;
        }

        @keyframes softBounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-3px); }
        }

        /* Button with ripple and gradient flow */
        .action-button {
            display: block;
            background: linear-gradient(105deg, #2563eb, #1d4ed8);
            background-size: 200% auto;
            color: white;
            text-decoration: none;
            text-align: center;
            padding: 16px 20px;
            font-weight: 800;
            font-size: 16px;
            border-radius: 60px;
            margin-bottom: 24px;
            transition: all 0.3s ease;
            box-shadow: 0 6px 18px rgba(37, 99, 235, 0.3);
            position: relative;
            overflow: hidden;
            animation: gradientFlow 3s infinite alternate;
        }

        @keyframes gradientFlow {
            0% { background-position: 0% 50%; box-shadow: 0 6px 18px rgba(37, 99, 235, 0.3); }
            100% { background-position: 100% 50%; box-shadow: 0 6px 22px rgba(220, 38, 38, 0.4); }
        }

        .action-button::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 0;
            height: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.3);
            transform: translate(-50%, -50%);
            transition: width 0.6s, height 0.6s;
        }

        .action-button:hover::before {
            width: 300px;
            height: 300px;
        }

        .action-button:hover {
            transform: scale(1.02);
            background: linear-gradient(105deg, #1d4ed8, #1e3a8a);
            background-size: 200% auto;
        }

        /* Footer links */
        .footer-links {
            text-align: center;
            font-size: 12px;
            margin-bottom: 20px;
        }

        .footer-links a {
            color: #5b7c9c;
            text-decoration: none;
            margin: 0 8px;
            transition: all 0.2s;
            position: relative;
        }

        .footer-links a::after {
            content: '';
            position: absolute;
            bottom: -2px;
            left: 0;
            width: 0;
            height: 1px;
            background: #dc2626;
            transition: width 0.3s;
        }

        .footer-links a:hover::after {
            width: 100%;
        }

        .footer-links a:hover {
            color: #dc2626;
        }

        .footer-copyright {
            text-align: center;
            font-size: 11px;
            color: #8ba0b5;
            border-top: 1px solid #eef2f8;
            padding-top: 20px;
            margin-top: 8px;
        }

        /* Countdown timer animation */
        .countdown-timer {
            background: #1e293b;
            color: #facc15;
            border-radius: 40px;
            padding: 8px 16px;
            font-size: 13px;
            font-weight: 700;
            text-align: center;
            margin-bottom: 18px;
            display: inline-block;
            width: auto;
            font-family: monospace;
            letter-spacing: 1px;
            animation: pulseGlow 1.2s infinite;
        }

        @keyframes pulseGlow {
            0% { box-shadow: 0 0 0 0 rgba(250, 204, 21, 0.4); background: #1e293b; }
            70% { box-shadow: 0 0 0 6px rgba(250, 204, 21, 0); background: #2d3a4e; }
            100% { box-shadow: 0 0 0 0 rgba(250, 204, 21, 0); background: #1e293b; }
        }

        @media (max-width: 560px) {
            .email-content {
                padding: 24px 20px;
            }
            h1 {
                font-size: 24px;
            }
            .data-row {
                flex-direction: column;
                align-items: flex-start;
                gap: 8px;
            }
            .info-note {
                flex-direction: column;
                text-align: center;
            }
        }
  </style>
 </head>
 <body>
  <div class="email-container">
   <!-- Header -->
   <div class="email-header">
    <div class="logo-icon">
     <svg fill="none" height="32" viewbox="0 0 24 24" width="32" xmlns="//www.w3.org/2000/svg">
      <path d="M19.35 10.04C18.67 6.59 15.64 4 12 4C9.11 4 6.6 5.64 5.35 8.04C2.34 8.36 0 10.91 0 14C0 17.31 2.69 20 6 20H19C21.76 20 24 17.76 24 15C24 12.36 21.95 10.22 19.35 10.04ZM19 18H6C3.79 18 2 16.21 2 14C2 11.95 3.53 10.24 5.56 10.03L6.63 9.92L7.13 8.97C8.08 7.14 9.94 6 12 6C14.76 6 17.08 7.97 17.51 10.7L17.73 12.08L19.12 12.18C20.73 12.3 22 13.52 22 15C22 16.65 20.65 18 19 18Z" fill="#2563eb">
      </path>
     </svg>
    </div>
    <div class="brand-name">
     CloudDrive
    </div>
   </div>
   <!-- Content -->
   <div class="email-content">
    <div class="warning-badge">
     ⚠️ IMMEDIATE ACTION REQUIRED
    </div>
    <h1>
     Data Deletion Warning
    </h1>
    <div class="subhead">
     Your account has been inactive and exceeds storage limits. Files are scheduled for permanent removal.
    </div>
    <!-- Dynamic Countdown -->
    <div style="text-align: center; margin-bottom: 20px;">
     <div class="countdown-timer" id="countdownDisplay">
      ⏳ Calculating...
     </div>
    </div>
    <!-- Alert box with dynamic date -->
    <div class="alert-box">
     <div class="alert-label">
      <span>
       ⚠️
      </span>
      CRITICAL NOTICE
     </div>
     <div class="alert-text">
      If you do not renew your storage plan by
      <strong id="deletionDate">
       [DATE]
      </strong>
      , all your data will be
      <strong>
       permanently deleted
      </strong>
      from our secure servers. This action is
      <strong>
       irreversible
      </strong>
      .
     </div>
    </div>
    <!-- Affected data -->
    <div class="data-card">
     <div class="data-header">
      📁 Affected data categories
     </div>
     <div class="data-row">
      <div class="row-label">
       🖼️ Photos &amp; Videos
      </div>
      <div class="row-status status-critical">
       ⚠️ At Risk — Deletion Pending
      </div>
     </div>
     <div class="data-row">
      <div class="row-label">
       📄 Documents &amp; PDFs
      </div>
      <div class="row-status status-critical">
       ⚠️ At Risk — Deletion Pending
      </div>
     </div>
     <div class="data-row">
      <div class="row-label">
       💾 Cloud Backups
      </div>
      <div class="row-status status-warning">
       ⏸️ Stopped — Inactive
      </div>
     </div>
     <div class="data-row">
      <div class="row-label">
       🗂️ Shared Folders
      </div>
      <div class="row-status status-critical">
       ⚠️ At Risk — Deletion Pending
      </div>
     </div>
    </div>
    <!-- Recovery note with icon animation -->
    <div class="info-note">
     <span style="font-size: 20px; animation: shake 1s infinite;">
      🕒
     </span>
     <span>
      <strong>
       Recovery window:
      </strong>
      After the deletion date, data cannot be retrieved. One-time restoration is unavailable.
     </span>
    </div>
    <!-- CTA Button -->
    <a class="action-button">
     ✅ Keep My Files – Restore Access
    </a>
    <!-- Footer links -->
    <div class="footer-links">
     <a>
      Unsubscribe from alerts
     </a>
     <span>
      |
     </span>
     <a>
      Support Center
     </a>
    </div>
   </div>
   <!-- Footer -->
   <div class="footer-copyright">
    <p>
     CloudDrive · 548 Market St, San Francisco, CA 94104
    </p>
    <p style="margin-top: 6px;">
     This is an automated service notification. Please keep your cloud storage active.
    </p>
    <p style="margin-top: 8px;">
     © 2026 CloudDrive — All rights reserved.
    </p>
   </div>
  </div>
  <script>
   // Set deletion date: 3 days from today
        const deletionDate = new Date();
        deletionDate.setDate(deletionDate.getDate() + 3);
        deletionDate.setHours(23, 59, 59, 0);
        
        const formattedDate = deletionDate.toLocaleDateString('en-US', { 
            month: 'long', 
            day: 'numeric', 
            year: 'numeric' 
        });

        // Update all date elements
        const dateElement = document.getElementById('deletionDate');
        if (dateElement) {
            dateElement.textContent = formattedDate;
        }

        // Also update any other potential date references in alert text
        const alertStrong = document.querySelector('.alert-text strong');
        if (alertStrong && alertStrong.textContent === '[DATE]') {
            alertStrong.textContent = formattedDate;
        }

        // Countdown Timer with live animation
        function updateCountdown() {
            const now = new Date();
            const diff = deletionDate - now;
            
            if (diff <= 0) {
                const countdownDiv = document.getElementById('countdownDisplay');
                if (countdownDiv) {
                    countdownDiv.innerHTML = '💀 DELETION EXPIRED — DATA LOST';
                    countdownDiv.style.background = '#b91c1c';
                    countdownDiv.style.color = '#fff';
                    countdownDiv.style.animation = 'pulseWarning 0.8s infinite';
                }
                return;
            }
            
            const days = Math.floor(diff / (1000 * 60 * 60 * 24));
            const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
            const seconds = Math.floor((diff % (1000 * 60)) / 1000);
            
            const countdownDiv = document.getElementById('countdownDisplay');
            if (countdownDiv) {
                countdownDiv.innerHTML = `⏰ AUTO-DELETION IN: ${days}d ${hours}h ${minutes}m ${seconds}s`;
                
                // Add urgency color change
                if (days === 0 && hours < 6) {
                    countdownDiv.style.background = '#b91c1c';
                    countdownDiv.style.color = '#ffffff';
                    countdownDiv.style.animation = 'pulseWarning 0.6s infinite';
                } else if (days === 0) {
                    countdownDiv.style.background = '#f97316';
                    countdownDiv.style.color = '#fff';
                } else {
                    countdownDiv.style.background = '#1e293b';
                    countdownDiv.style.color = '#facc15';
                }
            }
        }
        
        // Initial call
        updateCountdown();
        // Update every second for smooth animation
        setInterval(updateCountdown, 1000);
        
        // Add ripple effect to button on click
        const actionBtn = document.querySelector('.action-button');
        if (actionBtn) {
            actionBtn.addEventListener('click', function(e) {
                // Create ripple element
                const ripple = document.createElement('span');
                ripple.style.position = 'absolute';
                ripple.style.borderRadius = '50%';
                ripple.style.backgroundColor = 'rgba(255, 255, 255, 0.6)';
                ripple.style.width = '100px';
                ripple.style.height = '100px';
                ripple.style.marginLeft = '-50px';
                ripple.style.marginTop = '-50px';
                ripple.style.pointerEvents = 'none';
                ripple.style.animation = 'rippleEffect 0.6s ease-out';
                
                const rect = actionBtn.getBoundingClientRect();
                const mouseX = e.clientX - rect.left;
                const mouseY = e.clientY - rect.top;
                
                ripple.style.left = mouseX + 'px';
                ripple.style.top = mouseY + 'px';
                
                actionBtn.style.position = 'relative';
                actionBtn.style.overflow = 'hidden';
                actionBtn.appendChild(ripple);
                
                setTimeout(() => {
                    ripple.remove();
                }, 600);
            });
        }
        
        // Add ripple animation style dynamically if not exists
        const styleSheet = document.createElement("style");
        styleSheet.textContent = `
            @keyframes rippleEffect {
                0% {
                    transform: scale(0);
                    opacity: 0.8;
                }
                100% {
                    transform: scale(4);
                    opacity: 0;
                }
            }
        `;
        document.head.appendChild(styleSheet);
        
        // Optional: Add a subtle confetti burst when hovering countdown (just for fun)
        const countdownElement = document.getElementById('countdownDisplay');
        if (countdownElement) {
            countdownElement.addEventListener('mouseenter', () => {
                countdownElement.style.transform = 'scale(1.05)';
                countdownElement.style.transition = 'transform 0.2s';
            });
            countdownElement.addEventListener('mouseleave', () => {
                countdownElement.style.transform = 'scale(1)';
            });
        }
        
        // Animate warning badge continuously
        const warningBadge = document.querySelector('.warning-badge');
        if (warningBadge) {
            setInterval(() => {
                warningBadge.style.transform = 'scale(1.02)';
                setTimeout(() => {
                    warningBadge.style.transform = 'scale(1)';
                }, 200);
            }, 2000);
        }
  </script>
 </body>
</html>