{"id":9,"date":"2026-08-06T15:26:18","date_gmt":"2026-08-06T15:26:18","guid":{"rendered":"https:\/\/tempsmtp.uk\/?page_id=9"},"modified":"2026-08-12T15:07:22","modified_gmt":"2026-08-12T15:07:22","slug":"home","status":"publish","type":"page","link":"https:\/\/tempsmtp.uk\/zh","title":{"rendered":"\u5bb6"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9\" class=\"elementor elementor-9\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb57d10 e-con-full e-flex elementor-invisible e-con e-parent\" data-id=\"fb57d10\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a005ee elementor-widget elementor-widget-html\" data-id=\"5a005ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n  <div class=\"lm-wrapper\" id=\"temp-mail\" data-luma-mailbox>\r\n    <div class=\"lm-dark-card\" id=\"lm-generator-section\">\r\n      <h3 class=\"lm-title\">Your Private Inbox, Ready Now<\/h3>\r\n\r\n      <div class=\"lm-address-container\">\r\n        <input type=\"text\" id=\"lm-email-address\" readonly placeholder=\"Generating...\" aria-label=\"Temporary email address\">\r\n\r\n        <button type=\"button\" class=\"lm-inline-copy\" data-luma-action=\"copy\" title=\"Copy email\" aria-label=\"Copy email\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\">\r\n            <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect>\r\n            <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path>\r\n          <\/svg>\r\n        <\/button>\r\n      <\/div>\r\n\r\n      <div id=\"lm-countdown-wrapper\" hidden>\r\n        <span>Inbox expires in: <\/span><span id=\"lm-countdown-timer\">10:00<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"lm-domain-picker\">\r\n        <span class=\"lm-domain-label\" id=\"lm-domain-label\">Choose an inbox domain<\/span>\r\n        <div class=\"lm-domain-dropdown\" data-luma-domain-dropdown>\r\n          <select id=\"lm-domain-select\" aria-hidden=\"true\" tabindex=\"-1\" disabled>\r\n            <option value=\"\">Loading domains...<\/option>\r\n          <\/select>\r\n\r\n          <button\r\n            type=\"button\"\r\n            class=\"lm-domain-trigger\"\r\n            id=\"lm-domain-trigger\"\r\n            data-luma-action=\"toggle-domain\"\r\n            aria-haspopup=\"listbox\"\r\n            aria-expanded=\"false\"\r\n            aria-labelledby=\"lm-domain-label lm-domain-value\"\r\n            aria-controls=\"lm-domain-menu\"\r\n            disabled\r\n          >\r\n            <span class=\"lm-domain-symbol\" aria-hidden=\"true\">@<\/span>\r\n            <span class=\"lm-domain-value\" id=\"lm-domain-value\">Loading domains...<\/span>\r\n            <svg class=\"lm-domain-chevron\" viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\r\n              <path d=\"m6 9 6 6 6-6\"><\/path>\r\n            <\/svg>\r\n          <\/button>\r\n\r\n          <div class=\"lm-domain-menu\" id=\"lm-domain-menu\" role=\"listbox\" aria-labelledby=\"lm-domain-label\" hidden><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <p class=\"lm-hint\">Create a private, short-lived inbox in one click. No sign-up, no personal details, and no clutter in your everyday email.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"lm-content-container\">\r\n      <div class=\"lm-control-bar\" id=\"lm-action-section\">\r\n        <button type=\"button\" data-luma-action=\"copy\" class=\"lm-btn\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n            <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"><\/rect>\r\n            <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"><\/path>\r\n          <\/svg>\r\n          Copy\r\n        <\/button>\r\n        <button type=\"button\" data-luma-action=\"refresh\" class=\"lm-btn\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n            <path d=\"M21.5 2v6h-6M21.34 15.57a10 10 0 1 1-.57-8.38\"><\/path>\r\n          <\/svg>\r\n          Refresh\r\n        <\/button>\r\n        <button type=\"button\" data-luma-action=\"change\" class=\"lm-btn\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n            <path d=\"M12 20h9M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"><\/path>\r\n          <\/svg>\r\n          Change\r\n        <\/button>\r\n        <button type=\"button\" data-luma-action=\"delete\" class=\"lm-btn\">\r\n          <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\r\n            <polyline points=\"3 6 5 6 21 6\"><\/polyline>\r\n            <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"><\/path>\r\n          <\/svg>\r\n          Delete\r\n        <\/button>\r\n      <\/div>\r\n\r\n      <div class=\"lm-mailbox-section\" id=\"lm-list-view\">\r\n        <div class=\"lm-table-header\" aria-hidden=\"true\">\r\n          <div class=\"lm-col-sender\">SENDER<\/div>\r\n          <div class=\"lm-col-subject\">SUBJECT<\/div>\r\n          <div class=\"lm-col-view\">VIEW<\/div>\r\n        <\/div>\r\n        <div id=\"lm-mail-box\" aria-live=\"polite\">\r\n          <div class=\"lm-empty\">\r\n            <div class=\"lm-spinner\"><\/div>\r\n            <p>Waiting for incoming emails... <span id=\"lm-refresh-status\"><\/span><\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"lm-detail-view\" id=\"lm-detail-view\" hidden>\r\n        <div class=\"lm-detail-header\">\r\n          <button type=\"button\" class=\"lm-detail-back\" data-luma-action=\"back\">\r\n            <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" aria-hidden=\"true\">\r\n              <path d=\"M15 19l-7-7 7-7\"><\/path>\r\n            <\/svg>\r\n            Back to list\r\n          <\/button>\r\n          <div class=\"lm-detail-actions\">\r\n            <button type=\"button\" class=\"lm-action-text-btn\" data-luma-action=\"source\" hidden>Source<\/button>\r\n            <button type=\"button\" class=\"lm-action-text-btn\" data-luma-action=\"delete-message\">Delete<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lm-detail-card\">\r\n          <div class=\"lm-meta-row\">\r\n            <div class=\"lm-avatar\" id=\"lm-detail-avatar\" aria-hidden=\"true\">?<\/div>\r\n            <div class=\"lm-sender-info\">\r\n              <div class=\"lm-sender-name\" id=\"lm-detail-name\">Unknown Sender<\/div>\r\n              <div class=\"lm-sender-email\" id=\"lm-detail-email\"><\/div>\r\n            <\/div>\r\n            <div class=\"lm-date-info\">\r\n              <div class=\"lm-date-label\">Date:<\/div>\r\n              <div class=\"lm-date-val\" id=\"lm-detail-date\"><\/div>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"lm-detail-subject-row\">\r\n            <span class=\"lm-subject-label\">Subject:<\/span>\r\n            <span class=\"lm-subject-val\" id=\"lm-detail-subject\">No subject<\/span>\r\n          <\/div>\r\n\r\n          <div class=\"lm-detail-body\">\r\n            <iframe id=\"lm-detail-iframe\" title=\"Email content\" sandbox=\"allow-popups allow-downloads\"><\/iframe>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div id=\"lm-toast-container\" class=\"lm-toast-container\" aria-live=\"polite\" aria-atomic=\"true\"><\/div>\r\n\r\n  <style>\r\n  .lm-wrapper {\r\n    width: 100%;\r\n    margin: 0 auto;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .lm-wrapper *,\r\n  .lm-wrapper *::before,\r\n  .lm-wrapper *::after {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .lm-dark-card {\r\n    background: linear-gradient(120deg, #071b22 0%, #0f766e 55%, #0891b2 100%);\r\n    border-bottom: 1px solid rgba(255, 255, 255, 0.15);\r\n    width: 100%;\r\n    min-height: clamp(360px, 52vh, 500px);\r\n    padding: 56px 24px;\r\n    text-align: center;\r\n    color: #ffffff;\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n    align-items: center;\r\n  }\r\n\r\n  .lm-title {\r\n    font-size: 24px;\r\n    font-weight: 600;\r\n    letter-spacing: 0;\r\n    margin: 0 0 30px;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .lm-address-container {\r\n    max-width: 560px;\r\n    margin: 0 auto 16px;\r\n    background: rgba(0, 0, 0, 0.22);\r\n    border-radius:8px;\r\n    width: min(92vw, 560px);\r\n    padding: 6px 6px 6px 24px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n  }\r\n\r\n  #lm-email-address {\r\n    flex: 1;\r\n    min-width: 0;\r\n    background: transparent;\r\n    border: none;\r\n    outline: none;\r\n    color: #ffffff;\r\n    font-size: 18px;\r\n    font-weight: 500;\r\n    padding: 8px 0;\r\n  }\r\n\r\n  .lm-inline-copy {\r\n    background: #f59e0b !important;\r\n    border: none !important;\r\n    width: 44px;\r\n    height: 44px;\r\n    border-radius:6px;\r\n    color: #ffffff !important;\r\n    cursor: pointer;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    transition: background 0.2s, transform 0.1s;\r\n    flex-shrink: 0;\r\n    outline: none !important;\r\n  }\r\n\r\n  .lm-inline-copy:hover { background: #ff5252 !important; }\r\n  .lm-inline-copy:active { transform: scale(0.95); }\r\n\r\n  #lm-countdown-wrapper {\r\n    font-size: 14px;\r\n    color: #f59e0b;\r\n    font-weight: 600;\r\n    margin-bottom: 25px;\r\n    letter-spacing: 0;\r\n  }\r\n\r\n  #lm-countdown-timer {\r\n    background: rgba(245, 158, 11, 0.15);\r\n    padding: 2px 8px;\r\n    border-radius:4px;\r\n    margin-left: 5px;\r\n  }\r\n\r\n  .lm-domain-picker {\r\n    width: min(100%, 360px);\r\n    margin: 0 auto 24px;\r\n    display: grid;\r\n    gap: 8px;\r\n    position: relative;\r\n    z-index: 80;\r\n    text-align: left;\r\n    color: #cbc5d6;\r\n    font-size: 13px;\r\n  }\r\n\r\n  .lm-domain-label {\r\n    display: block;\r\n    margin: 0;\r\n    color: #cbd5e1 !important;\r\n    font: 500 13px\/1.3 Arial, Helvetica, sans-serif;\r\n    letter-spacing: 0;\r\n  }\r\n\r\n  .lm-domain-dropdown {\r\n    --lm-domain-accent: #22d3ee;\r\n    --lm-domain-accent-soft: rgba(34, 211, 238, 0.14);\r\n    position: relative;\r\n    width: 100%;\r\n    min-width: 0;\r\n    font-family: Arial, Helvetica, sans-serif;\r\n  }\r\n\r\n  .lm-domain-dropdown.lm-is-open {\r\n    z-index: 120;\r\n  }\r\n\r\n  #lm-domain-select {\r\n    position: absolute !important;\r\n    width: 1px !important;\r\n    height: 1px !important;\r\n    margin: -1px !important;\r\n    padding: 0 !important;\r\n    overflow: hidden !important;\r\n    clip: rect(0 0 0 0) !important;\r\n    clip-path: inset(50%) !important;\r\n    white-space: nowrap !important;\r\n    border: 0 !important;\r\n    opacity: 0 !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  .lm-domain-trigger {\r\n    width: 100%;\r\n    min-width: 0;\r\n    min-height: 48px;\r\n    display: grid !important;\r\n    grid-template-columns: 30px minmax(0, 1fr) 20px;\r\n    align-items: center;\r\n    gap: 10px;\r\n    padding: 7px 12px 7px 8px !important;\r\n    border: 1px solid rgba(34, 211, 238, 0.44) !important;\r\n    border-radius:4px !important;\r\n    background: #0e1528 !important;\r\n    color: #ffffff !important;\r\n    font: 500 14px\/1.25 Arial, Helvetica, sans-serif !important;\r\n    letter-spacing: 0 !important;\r\n    text-align: left;\r\n    cursor: pointer;\r\n    outline: none !important;\r\n    box-shadow: 0 8px 20px rgba(7, 12, 18, 0.18) !important;\r\n    appearance: none;\r\n    -webkit-tap-highlight-color: transparent;\r\n    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;\r\n  }\r\n\r\n  .lm-domain-trigger:hover,\r\n  .lm-domain-trigger:focus,\r\n  .lm-domain-trigger:active,\r\n  .lm-domain-dropdown.lm-is-open .lm-domain-trigger {\r\n    border-color: var(--lm-domain-accent) !important;\r\n    background: #15213b !important;\r\n    color: #ffffff !important;\r\n    box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.12), 0 10px 24px rgba(7, 12, 18, 0.22) !important;\r\n  }\r\n\r\n  .lm-domain-trigger:focus-visible {\r\n    box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.22), 0 10px 24px rgba(7, 12, 18, 0.22) !important;\r\n  }\r\n\r\n  .lm-domain-trigger:disabled {\r\n    opacity: 0.62;\r\n    cursor: wait;\r\n    box-shadow: none !important;\r\n  }\r\n\r\n  .lm-domain-symbol {\r\n    width: 30px;\r\n    height: 30px;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    border-radius:6px;\r\n    background: var(--lm-domain-accent-soft);\r\n    color: var(--lm-domain-accent);\r\n    font-size: 15px;\r\n    font-weight: 600;\r\n    line-height: 1;\r\n  }\r\n\r\n  .lm-domain-value {\r\n    min-width: 0;\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  .lm-domain-chevron {\r\n    color: #ada7ba;\r\n    transition: transform 0.18s ease, color 0.18s ease;\r\n  }\r\n\r\n  .lm-domain-dropdown.lm-is-open .lm-domain-chevron {\r\n    color: var(--lm-domain-accent);\r\n    transform: rotate(180deg);\r\n  }\r\n\r\n  .lm-domain-menu {\r\n    position: absolute;\r\n    z-index: 40;\r\n    top: calc(100% + 8px);\r\n    left: 0;\r\n    right: 0;\r\n    max-height: 240px;\r\n    padding: 6px;\r\n    overflow-x: hidden;\r\n    overflow-y: auto;\r\n    border: 1px solid rgba(34, 211, 238, 0.54);\r\n    border-radius:4px;\r\n    background: #090f1f;\r\n    box-shadow: 0 18px 40px rgba(5, 10, 16, 0.38);\r\n    transform-origin: top center;\r\n    animation: lumaDomainMenuIn 0.16s ease both;\r\n    scrollbar-width: thin;\r\n    scrollbar-color: rgba(34, 211, 238, 0.58) transparent;\r\n  }\r\n\r\n  .lm-domain-menu[hidden] {\r\n    display: none !important;\r\n  }\r\n\r\n  .lm-domain-menu::-webkit-scrollbar {\r\n    width: 6px;\r\n  }\r\n\r\n  .lm-domain-menu::-webkit-scrollbar-thumb {\r\n    border-radius:6px;\r\n    background: rgba(34, 211, 238, 0.58);\r\n  }\r\n\r\n  .lm-domain-option {\r\n    width: 100%;\r\n    min-width: 0;\r\n    min-height: 42px;\r\n    display: grid !important;\r\n    grid-template-columns: minmax(0, 1fr) 10px;\r\n    align-items: center;\r\n    gap: 12px;\r\n    padding: 9px 11px !important;\r\n    border: 0 !important;\r\n    border-radius:6px !important;\r\n    background: transparent !important;\r\n    color: #e1dbea !important;\r\n    font: 500 14px\/1.25 Arial, Helvetica, sans-serif !important;\r\n    letter-spacing: 0 !important;\r\n    text-align: left;\r\n    cursor: pointer;\r\n    outline: none !important;\r\n    box-shadow: none !important;\r\n    appearance: none;\r\n    -webkit-tap-highlight-color: transparent;\r\n  }\r\n\r\n  .lm-domain-option:hover,\r\n  .lm-domain-option:focus,\r\n  .lm-domain-option:active {\r\n    background: rgba(34, 211, 238, 0.09) !important;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .lm-domain-option[aria-selected=\"true\"] {\r\n    background: var(--lm-domain-accent-soft) !important;\r\n    color: var(--lm-domain-accent) !important;\r\n  }\r\n\r\n  .lm-domain-option::after {\r\n    content: \"\";\r\n    width: 8px;\r\n    height: 8px;\r\n    border-radius:6px;\r\n    background: transparent;\r\n    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2);\r\n  }\r\n\r\n  .lm-domain-option[aria-selected=\"true\"]::after {\r\n    background: var(--lm-domain-accent);\r\n    box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.14);\r\n  }\r\n\r\n  @keyframes lumaDomainMenuIn {\r\n    from { opacity: 0; transform: translateY(-5px) scale(0.985); }\r\n    to { opacity: 1; transform: translateY(0) scale(1); }\r\n  }\r\n\r\n  .lm-hint {\r\n    position: relative;\r\n    z-index: 1;\r\n    font-size: 13px;\r\n    color: #cbc5d6;\r\n    line-height: 1.6;\r\n    max-width: 720px;\r\n    margin: 0 auto;\r\n  }\r\n\r\n  .lm-content-container {\r\n    max-width: 900px;\r\n    margin: 0 auto;\r\n    padding: 0 20px;\r\n  }\r\n\r\n  .lm-control-bar {\r\n    display: grid;\r\n    grid-template-columns: repeat(4, minmax(0, 1fr));\r\n    gap: 15px;\r\n    margin: 40px 0 30px;\r\n    width: 100%;\r\n  }\r\n\r\n  .lm-btn {\r\n    background: #ffffff !important;\r\n    border: 1px solid #d9eef2 !important;\r\n    border-radius:8px;\r\n    min-height: 48px;\r\n    padding: 12px 14px;\r\n    font-size: 15px;\r\n    font-weight: 600;\r\n    color: #1f2937 !important;\r\n    cursor: pointer;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 8px;\r\n    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n    transition: background 0.2s, border-color 0.2s, transform 0.1s;\r\n    outline: none !important;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  .lm-btn:hover {\r\n    background: #fffaf7 !important;\r\n    border-color: #d9d3e3 !important;\r\n  }\r\n\r\n  .lm-btn:active { transform: translateY(1px); }\r\n  .lm-btn[disabled] { opacity: 0.62; cursor: not-allowed; }\r\n\r\n  .lm-mailbox-section {\r\n    background: #ffffff;\r\n    border-radius:4px;\r\n    overflow: hidden;\r\n    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\r\n    border: 1px solid #d9eef2;\r\n    width: 100%;\r\n  }\r\n\r\n  .lm-table-header {\r\n    background: #11182c;\r\n    color: #ffffff;\r\n    display: flex;\r\n    padding: 15px 20px;\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n    letter-spacing: 0;\r\n  }\r\n\r\n  .lm-col-sender { flex: 3; min-width: 0; }\r\n  .lm-col-subject { flex: 6; min-width: 0; }\r\n  .lm-col-view { flex: 1; min-width: 80px; text-align: right; }\r\n\r\n  .lm-mail-item {\r\n    display: flex;\r\n    align-items: center;\r\n    padding: 18px 20px;\r\n    border-bottom: 1px solid #ecfeff;\r\n    transition: background 0.2s;\r\n    font-size: 14px;\r\n  }\r\n\r\n  .lm-mail-item:hover { background: #faf9ff; }\r\n  .lm-mail-item:last-child { border-bottom: none; }\r\n\r\n  .lm-sender-cell,\r\n  .lm-subject-cell {\r\n    min-width: 0;\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n    white-space: nowrap;\r\n    padding-right: 15px;\r\n  }\r\n\r\n  .lm-sender-cell {\r\n    flex: 3;\r\n    font-weight: 600;\r\n    color: #17252f;\r\n  }\r\n\r\n  .lm-subject-cell {\r\n    flex: 6;\r\n    color: #625f78;\r\n  }\r\n\r\n  .lm-view-cell {\r\n    flex: 1;\r\n    min-width: 80px;\r\n    text-align: right;\r\n  }\r\n\r\n  .lm-view-btn {\r\n    background: #0891b2 !important;\r\n    color: #fff !important;\r\n    border: none !important;\r\n    padding: 6px 12px;\r\n    border-radius:4px;\r\n    cursor: pointer;\r\n    font-size: 12px;\r\n    font-weight: 600;\r\n    transition: background 0.2s;\r\n    outline: none !important;\r\n  }\r\n\r\n  .lm-view-btn:hover { background: #0e7490 !important; }\r\n\r\n  .lm-empty {\r\n    text-align: center;\r\n    padding: 60px 20px;\r\n    color: #7a7690;\r\n  }\r\n\r\n  .lm-spinner {\r\n    width: 32px;\r\n    height: 32px;\r\n    border: 3px solid #e7e2ef;\r\n    border-top-color: #f59e0b;\r\n    border-radius:6px;\r\n    margin: 0 auto 15px;\r\n    animation: lm-spin 0.8s linear infinite;\r\n  }\r\n\r\n  @keyframes lm-spin {\r\n    to { transform: rotate(360deg); }\r\n  }\r\n\r\n  .lm-detail-view {\r\n    background: #ffffff;\r\n    border-radius:4px;\r\n    overflow: hidden;\r\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);\r\n    border: 1px solid #d9eef2;\r\n    margin-top: 20px;\r\n    width: 100%;\r\n  }\r\n\r\n  .lm-detail-header {\r\n    background: #11182c;\r\n    padding: 18px 24px;\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    gap: 16px;\r\n  }\r\n\r\n  .lm-detail-back {\r\n    background: transparent !important;\r\n    border: none !important;\r\n    color: #ffffff !important;\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n    cursor: pointer;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    letter-spacing: 0;\r\n    padding: 0;\r\n    outline: none !important;\r\n  }\r\n\r\n  .lm-detail-actions {\r\n    display: flex;\r\n    gap: 24px;\r\n  }\r\n\r\n  .lm-action-text-btn {\r\n    background: transparent !important;\r\n    border: none !important;\r\n    color: #ffffff !important;\r\n    font-size: 15px;\r\n    font-weight: 700;\r\n    cursor: pointer;\r\n    padding: 0;\r\n    outline: none !important;\r\n  }\r\n\r\n  .lm-detail-card {\r\n    padding: 30px;\r\n    background: #ffffff;\r\n  }\r\n\r\n  .lm-meta-row {\r\n    display: flex;\r\n    align-items: center;\r\n    border-bottom: 1px solid #ecfeff;\r\n    padding-bottom: 20px;\r\n    gap: 15px;\r\n  }\r\n\r\n  .lm-avatar {\r\n    width: 48px;\r\n    height: 48px;\r\n    border-radius:6px;\r\n    border: 2px solid #e7e2ef;\r\n    color: #fb7185;\r\n    font-weight: 700;\r\n    font-size: 16px;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    text-transform: uppercase;\r\n    background: #ffffff;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  .lm-sender-info {\r\n    flex: 1;\r\n    min-width: 0;\r\n  }\r\n\r\n  .lm-sender-name {\r\n    font-size: 15px;\r\n    color: #17252f;\r\n    font-weight: 600;\r\n    margin-bottom: 2px;\r\n    overflow-wrap: anywhere;\r\n  }\r\n\r\n  .lm-sender-email {\r\n    font-size: 14px;\r\n    color: #7a7690;\r\n    overflow-wrap: anywhere;\r\n  }\r\n\r\n  .lm-date-info {\r\n    text-align: right;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  .lm-date-label {\r\n    font-size: 13px;\r\n    color: #aaa5ba;\r\n    margin-bottom: 4px;\r\n  }\r\n\r\n  .lm-date-val {\r\n    font-size: 14px;\r\n    color: #625f78;\r\n  }\r\n\r\n  .lm-detail-subject-row {\r\n    padding: 20px 0;\r\n    border-bottom: 1px solid #ecfeff;\r\n    font-size: 15px;\r\n    overflow-wrap: anywhere;\r\n  }\r\n\r\n  .lm-subject-label {\r\n    color: #7a7690;\r\n    margin-right: 8px;\r\n  }\r\n\r\n  .lm-subject-val {\r\n    color: #17252f;\r\n    font-weight: 600;\r\n  }\r\n\r\n  .lm-detail-body {\r\n    padding-top: 25px;\r\n    min-height: 250px;\r\n  }\r\n\r\n  #lm-detail-iframe {\r\n    width: 100%;\r\n    border: none;\r\n    min-height: 300px;\r\n    background: #ffffff;\r\n  }\r\n\r\n  .lm-toast-container {\r\n    position: fixed;\r\n    top: calc(88px + env(safe-area-inset-top, 0px));\r\n    right: clamp(16px, 2vw, 28px);\r\n    z-index: 99999;\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 10px;\r\n    width: min(360px, calc(100vw - 32px));\r\n    align-items: stretch;\r\n    pointer-events: none;\r\n  }\r\n\r\n  .lm-toast {\r\n    background: #1e293b;\r\n    color: #ffffff;\r\n    font-size: 14px;\r\n    font-weight: 500;\r\n    line-height: 1.45;\r\n    padding: 12px 22px;\r\n    border-radius:4px;\r\n    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);\r\n    display: flex;\r\n    align-items: center;\r\n    min-height: 44px;\r\n    overflow-wrap: anywhere;\r\n    pointer-events: auto;\r\n    border-left: 4px solid #f59e0b;\r\n    animation: lumaToastSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;\r\n  }\r\n\r\n  @keyframes lumaToastSlideIn {\r\n    from { opacity: 0; transform: translateX(30px); }\r\n    to { opacity: 1; transform: translateX(0); }\r\n  }\r\n\r\n  .lm-toast.lm-fade-out {\r\n    animation: lumaToastSlideOut 0.2s ease forwards;\r\n  }\r\n\r\n  @keyframes lumaToastSlideOut {\r\n    to { opacity: 0; transform: translateY(-10px); }\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    .lm-control-bar {\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n      gap: 10px;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 600px) {\r\n    .lm-dark-card {\r\n      min-height: 360px;\r\n      padding: 42px 16px;\r\n    }\r\n\r\n    .lm-title {\r\n      font-size: 21px;\r\n    }\r\n\r\n    #lm-email-address {\r\n      font-size: 15px;\r\n    }\r\n\r\n    .lm-content-container {\r\n      padding: 0 14px;\r\n    }\r\n\r\n    .lm-table-header {\r\n      display: none;\r\n    }\r\n\r\n    .lm-mail-item {\r\n      flex-direction: column;\r\n      align-items: flex-start;\r\n      gap: 8px;\r\n      border-bottom: 2px solid #e7e2ef;\r\n    }\r\n\r\n    .lm-sender-cell,\r\n    .lm-subject-cell,\r\n    .lm-view-cell {\r\n      width: 100%;\r\n      flex: none;\r\n      padding-right: 0;\r\n      white-space: normal;\r\n    }\r\n\r\n    .lm-view-cell {\r\n      text-align: left;\r\n      margin-top: 5px;\r\n    }\r\n\r\n    .lm-detail-header {\r\n      padding: 16px 18px;\r\n    }\r\n\r\n    .lm-detail-card {\r\n      padding: 22px 18px;\r\n    }\r\n\r\n    .lm-meta-row {\r\n      flex-wrap: wrap;\r\n      gap: 10px;\r\n    }\r\n\r\n    .lm-date-info {\r\n      text-align: left;\r\n      width: 100%;\r\n      padding-left: 63px;\r\n    }\r\n\r\n    .lm-toast-container {\r\n      top: calc(72px + env(safe-area-inset-top, 0px));\r\n      right: 15px;\r\n      left: 15px;\r\n      width: auto;\r\n    }\r\n\r\n    .lm-toast {\r\n      justify-content: center;\r\n      border-left: none;\r\n      border-top: 3px solid #f59e0b;\r\n    }\r\n  }\r\n  <\/style>\r\n\r\n  <script>\r\n  (function () {\r\n    \"use strict\";\r\n\r\n    const WORKER_URL = \"https:\/\/temp-mail-backend.zhaoy9128.workers.dev\";\r\n    const STORAGE_KEY = \"luma_mailbox_state_v1\";\r\n    const DEFAULT_MAILBOX_DOMAIN = \"4turbo.top\";\r\n    const DEFAULT_TTL_SECONDS = 600;\r\n    const INITIAL_POLL_SECONDS = 2;\r\n    const DEFAULT_MAX_POLL_SECONDS = 10;\r\n\r\n    let currentAddress = \"\";\r\n    let currentToken = \"\";\r\n    let expiresAtMs = 0;\r\n    let ttlSeconds = DEFAULT_TTL_SECONDS;\r\n    let pollSeconds = INITIAL_POLL_SECONDS;\r\n    let maxPollSeconds = DEFAULT_MAX_POLL_SECONDS;\r\n    let pollTimer = null;\r\n    let countdownInterval = null;\r\n    let globalEmailsCached = [];\r\n    let messageDetailsCache = new Map();\r\n    let selectedMailId = \"\";\r\n    let lastRenderSignature = \"\";\r\n    let inFlightFetch = false;\r\n    let currentAbortController = null;\r\n    let availableDomains = [];\r\n    let selectedDomain = \"\";\r\n    let sourceEnabled = false;\r\n\r\n    const $ = (id) => document.getElementById(id);\r\n\r\n    function safeBlur(btnEl) {\r\n      if (btnEl && typeof btnEl.blur === \"function\") btnEl.blur();\r\n    }\r\n\r\n    function escapeHtml(value) {\r\n      return String(value || \"\")\r\n        .replace(\/&\/g, \"&amp;\")\r\n        .replace(\/<\/g, \"&lt;\")\r\n        .replace(\/>\/g, \"&gt;\")\r\n        .replace(\/\"\/g, \"&quot;\")\r\n        .replace(\/'\/g, \"&#39;\");\r\n    }\r\n\r\n    function normalizeAddress(value) {\r\n      return String(value || \"\").trim().toLowerCase();\r\n    }\r\n\r\n    function getTimeLeftSeconds() {\r\n      if (!expiresAtMs) return 0;\r\n      return Math.max(0, Math.ceil((expiresAtMs - Date.now()) \/ 1000));\r\n    }\r\n\r\n    function setButtonsDisabled(disabled) {\r\n      const widget = document.querySelector(\"[data-luma-mailbox]\");\r\n      if (!widget) return;\r\n\r\n      widget.querySelectorAll(\"[data-luma-action]\").forEach((button) => {\r\n        if (button.dataset.lumaAction === \"back\" || button.dataset.lumaAction === \"source\") return;\r\n        button.disabled = Boolean(disabled);\r\n      });\r\n\r\n      const domainSelect = $(\"lm-domain-select\");\r\n      if (domainSelect) domainSelect.disabled = Boolean(disabled) || availableDomains.length === 0;\r\n\r\n      const domainTrigger = $(\"lm-domain-trigger\");\r\n      if (domainTrigger) domainTrigger.disabled = Boolean(disabled) || availableDomains.length === 0;\r\n      if (disabled) closeDomainMenu(false);\r\n    }\r\n\r\n    function getDomainOptionButtons() {\r\n      const menu = $(\"lm-domain-menu\");\r\n      return menu ? Array.from(menu.querySelectorAll(\"[data-luma-domain-option]\")) : [];\r\n    }\r\n\r\n    function closeDomainMenu(restoreFocus) {\r\n      const dropdown = document.querySelector(\"[data-luma-domain-dropdown]\");\r\n      const trigger = $(\"lm-domain-trigger\");\r\n      const menu = $(\"lm-domain-menu\");\r\n      if (!dropdown || !trigger || !menu) return;\r\n\r\n      dropdown.classList.remove(\"lm-is-open\");\r\n      trigger.setAttribute(\"aria-expanded\", \"false\");\r\n      menu.hidden = true;\r\n\r\n      if (restoreFocus) trigger.focus({ preventScroll: true });\r\n    }\r\n\r\n    function openDomainMenu(focusOption) {\r\n      const dropdown = document.querySelector(\"[data-luma-domain-dropdown]\");\r\n      const trigger = $(\"lm-domain-trigger\");\r\n      const menu = $(\"lm-domain-menu\");\r\n      if (!dropdown || !trigger || !menu || trigger.disabled) return;\r\n\r\n      dropdown.classList.add(\"lm-is-open\");\r\n      trigger.setAttribute(\"aria-expanded\", \"true\");\r\n      menu.hidden = false;\r\n\r\n      if (focusOption) {\r\n        const options = getDomainOptionButtons();\r\n        const selected = options.find((option) => option.getAttribute(\"aria-selected\") === \"true\");\r\n        (selected || options[0])?.focus({ preventScroll: true });\r\n      }\r\n    }\r\n\r\n    function toggleDomainMenu() {\r\n      const trigger = $(\"lm-domain-trigger\");\r\n      if (!trigger || trigger.disabled) return;\r\n      if (trigger.getAttribute(\"aria-expanded\") === \"true\") closeDomainMenu(false);\r\n      else openDomainMenu(false);\r\n    }\r\n\r\n    function selectMailboxDomain(domain, restoreFocus) {\r\n      const normalized = normalizeAddress(domain);\r\n      const domains = availableDomains.length ? availableDomains : [DEFAULT_MAILBOX_DOMAIN];\r\n      if (!normalized || !domains.includes(normalized)) return;\r\n\r\n      selectedDomain = normalized;\r\n\r\n      const select = $(\"lm-domain-select\");\r\n      if (select) select.value = selectedDomain;\r\n\r\n      const value = $(\"lm-domain-value\");\r\n      if (value) value.textContent = `@${selectedDomain}`;\r\n\r\n      getDomainOptionButtons().forEach((option) => {\r\n        option.setAttribute(\"aria-selected\", option.dataset.lumaDomainOption === selectedDomain ? \"true\" : \"false\");\r\n      });\r\n\r\n      saveMailboxState();\r\n      closeDomainMenu(Boolean(restoreFocus));\r\n    }\r\n\r\n    function handleDomainKeydown(event) {\r\n      const trigger = event.target.closest(\"#lm-domain-trigger\");\r\n      if (trigger && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\r\n        event.preventDefault();\r\n        openDomainMenu(true);\r\n        return;\r\n      }\r\n\r\n      const option = event.target.closest(\"[data-luma-domain-option]\");\r\n      if (!option) {\r\n        if (trigger && event.key === \"Escape\") {\r\n          event.preventDefault();\r\n          closeDomainMenu(false);\r\n        }\r\n        return;\r\n      }\r\n\r\n      const options = getDomainOptionButtons();\r\n      const currentIndex = Math.max(0, options.indexOf(option));\r\n\r\n      if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\r\n        event.preventDefault();\r\n        const direction = event.key === \"ArrowDown\" ? 1 : -1;\r\n        const nextIndex = (currentIndex + direction + options.length) % options.length;\r\n        options[nextIndex]?.focus({ preventScroll: true });\r\n      } else if (event.key === \"Home\" || event.key === \"End\") {\r\n        event.preventDefault();\r\n        options[event.key === \"Home\" ? 0 : options.length - 1]?.focus({ preventScroll: true });\r\n      } else if (event.key === \"Enter\" || event.key === \" \") {\r\n        event.preventDefault();\r\n        selectMailboxDomain(option.dataset.lumaDomainOption, true);\r\n      } else if (event.key === \"Escape\") {\r\n        event.preventDefault();\r\n        closeDomainMenu(true);\r\n      } else if (event.key === \"Tab\") {\r\n        closeDomainMenu(false);\r\n      }\r\n    }\r\n\r\n    function updateSourceButton() {\r\n      const sourceButton = document.querySelector('[data-luma-action=\"source\"]');\r\n      if (sourceButton) sourceButton.hidden = !sourceEnabled;\r\n    }\r\n\r\n    function showNotification(text) {\r\n      const container = $(\"lm-toast-container\");\r\n      if (!container) return;\r\n\r\n      const toast = document.createElement(\"div\");\r\n      toast.className = \"lm-toast\";\r\n\r\n      const span = document.createElement(\"span\");\r\n      span.textContent = text;\r\n      toast.appendChild(span);\r\n      container.appendChild(toast);\r\n\r\n      window.setTimeout(() => {\r\n        toast.classList.add(\"lm-fade-out\");\r\n        window.setTimeout(() => toast.remove(), 220);\r\n      }, 2500);\r\n    }\r\n\r\n    function saveMailboxState() {\r\n      try {\r\n        if (!currentAddress || !currentToken || !expiresAtMs) {\r\n          localStorage.removeItem(STORAGE_KEY);\r\n          return;\r\n        }\r\n\r\n        localStorage.setItem(STORAGE_KEY, JSON.stringify({\r\n          address: currentAddress,\r\n          token: currentToken,\r\n          expiresAt: expiresAtMs,\r\n          ttlSeconds,\r\n          maxPollSeconds,\r\n          selectedDomain,\r\n          sourceEnabled\r\n        }));\r\n      } catch (error) {\r\n        \/\/ localStorage can be blocked; the mailbox still works for this session.\r\n      }\r\n    }\r\n\r\n    function restoreMailboxState() {\r\n      try {\r\n        const state = JSON.parse(localStorage.getItem(STORAGE_KEY) || \"{}\");\r\n        if (!state.address || !state.token || !state.expiresAt || state.expiresAt <= Date.now()) {\r\n          localStorage.removeItem(STORAGE_KEY);\r\n          return false;\r\n        }\r\n\r\n        currentAddress = normalizeAddress(state.address);\r\n        currentToken = String(state.token);\r\n        expiresAtMs = Number(state.expiresAt);\r\n        ttlSeconds = Number(state.ttlSeconds) || DEFAULT_TTL_SECONDS;\r\n        maxPollSeconds = Number(state.maxPollSeconds) || DEFAULT_MAX_POLL_SECONDS;\r\n        selectedDomain = normalizeAddress(state.selectedDomain || currentAddress.split(\"@\").pop());\r\n        sourceEnabled = Boolean(state.sourceEnabled);\r\n\r\n        const input = $(\"lm-email-address\");\r\n        if (input) input.value = currentAddress;\r\n        updateSourceButton();\r\n        return true;\r\n      } catch (error) {\r\n        return false;\r\n      }\r\n    }\r\n\r\n    function renderDomainOptions() {\r\n      const select = $(\"lm-domain-select\");\r\n      const trigger = $(\"lm-domain-trigger\");\r\n      const value = $(\"lm-domain-value\");\r\n      const menu = $(\"lm-domain-menu\");\r\n      if (!select || !trigger || !value || !menu) return;\r\n\r\n      const domains = availableDomains.length ? availableDomains : [DEFAULT_MAILBOX_DOMAIN];\r\n      if (!selectedDomain || !domains.includes(selectedDomain)) {\r\n        selectedDomain = domains[0];\r\n      }\r\n\r\n      select.replaceChildren(...domains.map((domain) => {\r\n        const option = document.createElement(\"option\");\r\n        option.value = domain;\r\n        option.textContent = `@${domain}`;\r\n        option.selected = domain === selectedDomain;\r\n        return option;\r\n      }));\r\n\r\n      menu.replaceChildren(...domains.map((domain) => {\r\n        const option = document.createElement(\"button\");\r\n        option.type = \"button\";\r\n        option.tabIndex = -1;\r\n        option.className = \"lm-domain-option\";\r\n        option.dataset.lumaDomainOption = domain;\r\n        option.setAttribute(\"role\", \"option\");\r\n        option.setAttribute(\"aria-selected\", domain === selectedDomain ? \"true\" : \"false\");\r\n        option.textContent = `@${domain}`;\r\n        return option;\r\n      }));\r\n\r\n      value.textContent = `@${selectedDomain}`;\r\n      select.disabled = false;\r\n      trigger.disabled = false;\r\n      closeDomainMenu(false);\r\n    }\r\n\r\n    async function loadDomains() {\r\n      try {\r\n        const response = await fetch(`${WORKER_URL}\/domains`, {\r\n          method: \"GET\",\r\n          cache: \"no-store\"\r\n        });\r\n        if (!response.ok) throw new Error(`Request failed: ${response.status}`);\r\n\r\n        const data = await response.json();\r\n        availableDomains = Array.isArray(data.domains)\r\n          ? [...new Set(data.domains.map(normalizeAddress).filter(Boolean))]\r\n          : [];\r\n        selectedDomain = selectedDomain || normalizeAddress(data.defaultDomain || \"\");\r\n        sourceEnabled = Boolean(data.sourceEnabled);\r\n      } catch (error) {\r\n        availableDomains = [selectedDomain || DEFAULT_MAILBOX_DOMAIN];\r\n      }\r\n\r\n      renderDomainOptions();\r\n      updateSourceButton();\r\n    }\r\n\r\n    function renderCountdown() {\r\n      const wrapper = $(\"lm-countdown-wrapper\");\r\n      const display = $(\"lm-countdown-timer\");\r\n      const timeLeft = getTimeLeftSeconds();\r\n\r\n      if (wrapper) wrapper.hidden = !currentAddress;\r\n      if (!display) return;\r\n\r\n      const minutes = Math.floor(timeLeft \/ 60);\r\n      const seconds = timeLeft % 60;\r\n      display.innerText = `${minutes}:${seconds < 10 ? \"0\" : \"\"}${seconds}`;\r\n    }\r\n\r\n    function initCountdown() {\r\n      if (countdownInterval) clearInterval(countdownInterval);\r\n      renderCountdown();\r\n\r\n      countdownInterval = window.setInterval(() => {\r\n        if (!currentAddress) {\r\n          clearInterval(countdownInterval);\r\n          countdownInterval = null;\r\n          return;\r\n        }\r\n\r\n        if (getTimeLeftSeconds() <= 0) {\r\n          clearLocalMailbox({ message: \"Your address has expired.\" });\r\n          return;\r\n        }\r\n\r\n        renderCountdown();\r\n        saveMailboxState();\r\n      }, 1000);\r\n    }\r\n\r\n    function resetMailboxView(message, loading) {\r\n      const mailBox = $(\"lm-mail-box\");\r\n      if (!mailBox) return;\r\n\r\n      mailBox.innerHTML = `\r\n        <div class=\"lm-empty\">\r\n          ${loading ? '<div class=\"lm-spinner\"><\/div>' : \"\"}\r\n          <p>${escapeHtml(message || \"Waiting for incoming emails...\")} <span id=\"lm-refresh-status\"><\/span><\/p>\r\n        <\/div>`;\r\n    }\r\n\r\n    function backToList(btnEl) {\r\n      safeBlur(btnEl);\r\n      const detailView = $(\"lm-detail-view\");\r\n      const listView = $(\"lm-list-view\");\r\n      if (detailView) detailView.hidden = true;\r\n      if (listView) listView.hidden = false;\r\n    }\r\n\r\n    function clearLocalMailbox(options) {\r\n      const message = options && options.message\r\n        ? options.message\r\n        : 'Mailbox deleted. Please click \"Change\" to generate a new address.';\r\n\r\n      stopListening();\r\n      if (countdownInterval) {\r\n        clearInterval(countdownInterval);\r\n        countdownInterval = null;\r\n      }\r\n\r\n      currentAddress = \"\";\r\n      currentToken = \"\";\r\n      expiresAtMs = 0;\r\n      globalEmailsCached = [];\r\n      messageDetailsCache = new Map();\r\n      selectedMailId = \"\";\r\n      lastRenderSignature = \"\";\r\n      pollSeconds = INITIAL_POLL_SECONDS;\r\n      sourceEnabled = false;\r\n      updateSourceButton();\r\n\r\n      try { localStorage.removeItem(STORAGE_KEY); } catch (error) {}\r\n\r\n      const input = $(\"lm-email-address\");\r\n      if (input) input.value = \"\";\r\n\r\n      const wrapper = $(\"lm-countdown-wrapper\");\r\n      if (wrapper) wrapper.hidden = true;\r\n\r\n      resetMailboxView(message, false);\r\n      backToList(null);\r\n      if (options && options.message) showNotification(options.message);\r\n    }\r\n\r\n    async function createMailbox() {\r\n      const previousAddress = currentAddress;\r\n      const previousToken = currentToken;\r\n\r\n      setButtonsDisabled(true);\r\n      stopListening();\r\n\r\n      try {\r\n        resetMailboxView(\"Generating mailbox...\", true);\r\n\r\n        const domainSelect = $(\"lm-domain-select\");\r\n        selectedDomain = normalizeAddress(domainSelect && domainSelect.value || selectedDomain || DEFAULT_MAILBOX_DOMAIN);\r\n\r\n        const response = await fetch(`${WORKER_URL}\/mailbox`, {\r\n          method: \"POST\",\r\n          cache: \"no-store\",\r\n          headers: { \"Content-Type\": \"application\/json\" },\r\n          body: JSON.stringify({ domain: selectedDomain })\r\n        });\r\n\r\n        if (!response.ok) throw new Error(`Request failed: ${response.status}`);\r\n\r\n        const data = await response.json();\r\n        if (!data.address || !data.token || !data.expiresAt) {\r\n          throw new Error(\"Invalid mailbox response.\");\r\n        }\r\n\r\n        currentAddress = normalizeAddress(data.address);\r\n        currentToken = String(data.token);\r\n        expiresAtMs = new Date(data.expiresAt).getTime();\r\n        ttlSeconds = Number(data.ttlSeconds) || DEFAULT_TTL_SECONDS;\r\n        pollSeconds = Number(data.pollSeconds) || INITIAL_POLL_SECONDS;\r\n        maxPollSeconds = Number(data.maxPollSeconds) || DEFAULT_MAX_POLL_SECONDS;\r\n        selectedDomain = currentAddress.split(\"@\").pop() || selectedDomain;\r\n        sourceEnabled = Boolean(data.sourceEnabled);\r\n        globalEmailsCached = [];\r\n        messageDetailsCache = new Map();\r\n        selectedMailId = \"\";\r\n        lastRenderSignature = \"\";\r\n\r\n        const input = $(\"lm-email-address\");\r\n        if (input) input.value = currentAddress;\r\n\r\n        renderDomainOptions();\r\n        updateSourceButton();\r\n        saveMailboxState();\r\n        initCountdown();\r\n        backToList(null);\r\n        resetMailboxView(\"\", true);\r\n        startListening(true);\r\n        showNotification(\"Your private inbox is ready.\");\r\n\r\n        if (previousAddress && previousToken && previousAddress !== currentAddress) {\r\n          deleteRemoteMailbox(previousAddress, previousToken);\r\n        }\r\n      } catch (error) {\r\n        if (previousAddress && previousToken) {\r\n          showNotification(\"New mailbox generation failed. Your previous mailbox is still active.\");\r\n          renderMailboxList(globalEmailsCached);\r\n          startListening(true);\r\n        } else {\r\n          resetMailboxView(\"Mailbox generation failed. Please try again.\", false);\r\n        }\r\n        showNotification(\"Mailbox generation failed.\");\r\n      } finally {\r\n        setButtonsDisabled(false);\r\n      }\r\n    }\r\n\r\n    async function copyEmail(btnEl) {\r\n      safeBlur(btnEl);\r\n      if (!currentAddress) return;\r\n\r\n      try {\r\n        if (navigator.clipboard && window.isSecureContext) {\r\n          await navigator.clipboard.writeText(currentAddress);\r\n        } else {\r\n          const input = $(\"lm-email-address\");\r\n          if (!input) throw new Error(\"Email input not found.\");\r\n          input.focus();\r\n          input.select();\r\n          document.execCommand(\"copy\");\r\n          input.blur();\r\n        }\r\n\r\n        showNotification(\"Copied to clipboard.\");\r\n      } catch (error) {\r\n        showNotification(\"Copy failed. Please select the address manually.\");\r\n      }\r\n    }\r\n\r\n    function manualRefresh(btnEl) {\r\n      safeBlur(btnEl);\r\n      if (!currentAddress) return;\r\n      pollSeconds = INITIAL_POLL_SECONDS;\r\n      fetchEmails(true);\r\n    }\r\n\r\n    async function deleteIdentity(btnEl, options) {\r\n      safeBlur(btnEl);\r\n      if (!currentAddress || !currentToken) return;\r\n\r\n      const address = currentAddress;\r\n      const token = currentToken;\r\n\r\n      await deleteRemoteMailbox(address, token);\r\n\r\n      clearLocalMailbox({ message: options && options.silent ? \"\" : \"Mailbox deleted.\" });\r\n    }\r\n\r\n    async function deleteSelectedMessage(btnEl) {\r\n      safeBlur(btnEl);\r\n      if (!selectedMailId || !currentAddress || !currentToken) return;\r\n      if (!window.confirm(\"Delete this message?\")) return;\r\n\r\n      const messageId = selectedMailId;\r\n      if (btnEl) btnEl.disabled = true;\r\n\r\n      try {\r\n        const response = await fetch(\r\n          `${WORKER_URL}\/message?address=${encodeURIComponent(currentAddress)}&id=${encodeURIComponent(messageId)}`,\r\n          {\r\n            method: \"DELETE\",\r\n            cache: \"no-store\",\r\n            headers: { \"X-Mailbox-Token\": currentToken }\r\n          }\r\n        );\r\n\r\n        if (response.status === 403) {\r\n          clearLocalMailbox({ message: \"Mailbox expired or unauthorized.\" });\r\n          return;\r\n        }\r\n        if (!response.ok) throw new Error(`Request failed: ${response.status}`);\r\n\r\n        messageDetailsCache.delete(messageId);\r\n        globalEmailsCached = globalEmailsCached.filter((mail) => mail.id !== messageId);\r\n        selectedMailId = \"\";\r\n        lastRenderSignature = getEmailSignature(globalEmailsCached);\r\n        backToList(btnEl);\r\n        renderMailboxList(globalEmailsCached);\r\n        showNotification(\"Message deleted.\");\r\n      } catch (error) {\r\n        showNotification(\"Message could not be deleted.\");\r\n      } finally {\r\n        if (btnEl) btnEl.disabled = false;\r\n      }\r\n    }\r\n\r\n    async function deleteRemoteMailbox(address, token) {\r\n      if (!address || !token) return;\r\n\r\n      try {\r\n        await fetch(`${WORKER_URL}\/mailbox?address=${encodeURIComponent(address)}`, {\r\n          method: \"DELETE\",\r\n          cache: \"no-store\",\r\n          headers: { \"X-Mailbox-Token\": token }\r\n        });\r\n      } catch (error) {\r\n        \/\/ Local cleanup is still useful if the network request fails.\r\n      }\r\n    }\r\n\r\n    function startListening(force) {\r\n      if (document.hidden || !currentAddress || !currentToken) return;\r\n      stopListening();\r\n      fetchEmails(Boolean(force));\r\n    }\r\n\r\n    function scheduleNextPoll() {\r\n      if (pollTimer) clearTimeout(pollTimer);\r\n      if (document.hidden || !currentAddress || !currentToken) return;\r\n\r\n      pollTimer = window.setTimeout(() => {\r\n        pollTimer = null;\r\n        fetchEmails(false);\r\n      }, pollSeconds * 1000);\r\n    }\r\n\r\n    function stopListening() {\r\n      if (pollTimer) {\r\n        clearTimeout(pollTimer);\r\n        pollTimer = null;\r\n      }\r\n\r\n      if (currentAbortController) {\r\n        currentAbortController.abort();\r\n        currentAbortController = null;\r\n      }\r\n    }\r\n\r\n    function getEmailSignature(emails) {\r\n      return emails.map((mail) => [\r\n        mail.id || \"\",\r\n        mail.time || \"\",\r\n        mail.from || \"\",\r\n        mail.subject || \"\"\r\n      ].join(\"|\")).join(\";\");\r\n    }\r\n\r\n    function renderMailboxList(emails) {\r\n      const mailBox = $(\"lm-mail-box\");\r\n      if (!mailBox) return;\r\n\r\n      if (!emails.length) {\r\n        resetMailboxView(\"\", true);\r\n        return;\r\n      }\r\n\r\n      const fragment = document.createDocumentFragment();\r\n      emails.forEach((mail) => {\r\n        const row = document.createElement(\"div\");\r\n        row.className = \"lm-mail-item\";\r\n\r\n        const sender = document.createElement(\"div\");\r\n        sender.className = \"lm-sender-cell\";\r\n        sender.textContent = mail.from || \"Unknown Sender\";\r\n\r\n        const subject = document.createElement(\"div\");\r\n        subject.className = \"lm-subject-cell\";\r\n        const strong = document.createElement(\"strong\");\r\n        strong.textContent = mail.subject || \"No subject\";\r\n        subject.appendChild(strong);\r\n\r\n        const view = document.createElement(\"div\");\r\n        view.className = \"lm-view-cell\";\r\n        const button = document.createElement(\"button\");\r\n        button.type = \"button\";\r\n        button.className = \"lm-view-btn\";\r\n        button.textContent = \"View\";\r\n        button.dataset.mailId = mail.id || \"\";\r\n        view.appendChild(button);\r\n\r\n        row.append(sender, subject, view);\r\n        fragment.appendChild(row);\r\n      });\r\n\r\n      mailBox.replaceChildren(fragment);\r\n    }\r\n\r\n    async function fetchEmails(forceRender) {\r\n      if (!currentAddress || !currentToken || document.hidden || inFlightFetch) {\r\n        scheduleNextPoll();\r\n        return;\r\n      }\r\n\r\n      if (getTimeLeftSeconds() <= 0) {\r\n        clearLocalMailbox({ message: \"Your address has expired.\" });\r\n        return;\r\n      }\r\n\r\n      const statusSpan = $(\"lm-refresh-status\");\r\n      inFlightFetch = true;\r\n      currentAbortController = new AbortController();\r\n\r\n      try {\r\n        if (statusSpan) statusSpan.innerText = \"(refreshing...)\";\r\n\r\n        const response = await fetch(`${WORKER_URL}\/get-email?address=${encodeURIComponent(currentAddress)}&summary=1`, {\r\n          method: \"GET\",\r\n          cache: \"no-store\",\r\n          headers: { \"X-Mailbox-Token\": currentToken },\r\n          signal: currentAbortController.signal\r\n        });\r\n\r\n        if (response.status === 403) {\r\n          clearLocalMailbox({ message: \"Mailbox expired or unauthorized.\" });\r\n          return;\r\n        }\r\n\r\n        if (!response.ok) throw new Error(`Request failed: ${response.status}`);\r\n\r\n        const data = await response.json();\r\n        const emails = Array.isArray(data.emails) ? data.emails : [];\r\n        const signature = getEmailSignature(emails);\r\n        const previousCount = globalEmailsCached.length;\r\n\r\n        if (data.expiresAt) {\r\n          expiresAtMs = new Date(data.expiresAt).getTime();\r\n          saveMailboxState();\r\n        }\r\n\r\n        if (statusSpan) statusSpan.innerText = \"\";\r\n        globalEmailsCached = emails;\r\n\r\n        if (forceRender || signature !== lastRenderSignature) {\r\n          lastRenderSignature = signature;\r\n          renderMailboxList(emails);\r\n\r\n          if (selectedMailId) {\r\n            const current = messageDetailsCache.get(selectedMailId);\r\n            if (current) renderMailDetail(current, false);\r\n          }\r\n\r\n          if (emails.length > previousCount && previousCount > 0) {\r\n            showNotification(\"New email received.\");\r\n          }\r\n        }\r\n\r\n        pollSeconds = emails.length ? INITIAL_POLL_SECONDS : Math.min(maxPollSeconds, Math.ceil(pollSeconds * 1.5));\r\n      } catch (error) {\r\n        if (error.name !== \"AbortError\") {\r\n          if (statusSpan) statusSpan.innerText = \"(refresh failed)\";\r\n          pollSeconds = Math.min(maxPollSeconds, Math.max(5, pollSeconds * 2));\r\n        }\r\n      } finally {\r\n        inFlightFetch = false;\r\n        currentAbortController = null;\r\n        scheduleNextPoll();\r\n      }\r\n    }\r\n\r\n    function sanitizeForIframe(html) {\r\n      return String(html || \"\")\r\n        .replace(\/<!--[\\s\\S]*?-->\/g, \"\")\r\n        .replace(\/<(script|iframe|object|embed|form|input|button|textarea|select|meta|link|base|frame|frameset|svg|math)[\\s\\S]*?<\\\/\\1\\s*>\/gi, \"\")\r\n        .replace(\/<\\\/?(script|iframe|object|embed|form|input|button|textarea|select|meta|link|base|frame|frameset|svg|math)[^>]*>\/gi, \"\")\r\n        .replace(\/\\s+on[a-z]+\\s*=\\s*(\"[^\"]*\"|'[^']*'|[^\\s>]+)\/gi, \"\")\r\n        .replace(\/\\s+(href|src|xlink:href)\\s*=\\s*(['\"])\\s*(javascript:|vbscript:|data:text\\\/html|file:)[\\s\\S]*?\\2\/gi, \"\");\r\n    }\r\n\r\n    function getSenderParts(fromValue) {\r\n      const from = String(fromValue || \"\");\r\n      const match = from.match(\/^(.*?)<([^>]+)>\/);\r\n      if (!match) return { name: from || \"Unknown Sender\", email: from || \"\" };\r\n\r\n      const name = match[1].trim().replace(\/^\"|\"$\/g, \"\");\r\n      return {\r\n        name: name || match[2].trim() || \"Unknown Sender\",\r\n        email: match[2].trim()\r\n      };\r\n    }\r\n\r\n    function getAvatarInitials(name, fallback) {\r\n      const source = String(name || fallback || \"\").replace(\/[^a-zA-Z0-9]\/g, \"\").trim();\r\n      return source ? source.substring(0, 2).toUpperCase() : \"?\";\r\n    }\r\n\r\n    function formatDate(value) {\r\n      const d = new Date(value);\r\n      if (Number.isNaN(d.getTime())) return \"\";\r\n\r\n      const pad = (n) => String(n).padStart(2, \"0\");\r\n      return `${pad(d.getDate())}-${pad(d.getMonth() + 1)}-${d.getFullYear()} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\r\n    }\r\n\r\n    function renderMailDetail(mail, scroll) {\r\n      const sender = getSenderParts(mail.from);\r\n\r\n      $(\"lm-detail-avatar\").innerText = getAvatarInitials(sender.name, sender.email);\r\n      $(\"lm-detail-name\").innerText = sender.name || \"Unknown Sender\";\r\n      $(\"lm-detail-email\").innerText = sender.email || mail.from || \"\";\r\n      $(\"lm-detail-date\").innerText = formatDate(mail.time);\r\n      $(\"lm-detail-subject\").innerText = mail.subject || \"No subject\";\r\n\r\n      const iframe = $(\"lm-detail-iframe\");\r\n      if (!iframe) return;\r\n\r\n      const iframeHtml = sanitizeForIframe(mail.bodyHtml || escapeHtml(mail.bodyText || \"\").replace(\/\\n\/g, \"<br>\"));\r\n      iframe.srcdoc = `\r\n        <!DOCTYPE html>\r\n        <html>\r\n        <head>\r\n          <meta charset=\"utf-8\">\r\n          <base target=\"_blank\">\r\n          <style>\r\n            body {\r\n              font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif;\r\n              font-size: 15px;\r\n              color: #17252f;\r\n              line-height: 1.6;\r\n              margin: 12px;\r\n              word-break: break-word;\r\n            }\r\n            a { color: #0891b2; text-decoration: underline; }\r\n            img { max-width: 100% !important; height: auto !important; border-radius:6px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }\r\n            video, audio { max-width: 100% !important; height: auto !important; border-radius:6px; margin: 12px 0; display: block; }\r\n            pre, code { white-space: pre-wrap; word-break: break-all; }\r\n            table { max-width: 100%; border-collapse: collapse; }\r\n            td, th { word-break: break-word; }\r\n          <\/style>\r\n        <\/head>\r\n        <body>${iframeHtml}<\/body>\r\n        <\/html>\r\n      `;\r\n\r\n      const resizeIframe = () => {\r\n        try {\r\n          const doc = iframe.contentDocument || iframe.contentWindow.document;\r\n          if (!doc || !doc.body) return;\r\n          iframe.style.height = \"auto\";\r\n          iframe.style.height = `${Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight) + 40}px`;\r\n        } catch (error) {\r\n          iframe.style.height = \"600px\";\r\n        }\r\n      };\r\n\r\n      iframe.onload = resizeIframe;\r\n      window.setTimeout(resizeIframe, 150);\r\n      window.setTimeout(resizeIframe, 600);\r\n\r\n      $(\"lm-list-view\").hidden = true;\r\n      $(\"lm-detail-view\").hidden = false;\r\n      if (scroll !== false) $(\"lm-detail-view\").scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n    }\r\n\r\n    async function openMailDetailById(mailId) {\r\n      const summary = globalEmailsCached.find((item) => item.id === mailId);\r\n      if (!summary || !currentAddress || !currentToken) return;\r\n\r\n      selectedMailId = summary.id || \"\";\r\n      const cached = messageDetailsCache.get(selectedMailId);\r\n      if (cached) {\r\n        renderMailDetail(cached, true);\r\n        return;\r\n      }\r\n\r\n      showNotification(\"Loading message...\");\r\n      try {\r\n        const response = await fetch(\r\n          `${WORKER_URL}\/message?address=${encodeURIComponent(currentAddress)}&id=${encodeURIComponent(selectedMailId)}`,\r\n          {\r\n            method: \"GET\",\r\n            cache: \"no-store\",\r\n            headers: { \"X-Mailbox-Token\": currentToken }\r\n          }\r\n        );\r\n\r\n        if (response.status === 403) {\r\n          clearLocalMailbox({ message: \"Mailbox expired or unauthorized.\" });\r\n          return;\r\n        }\r\n        if (!response.ok) throw new Error(`Request failed: ${response.status}`);\r\n\r\n        const data = await response.json();\r\n        if (!data.email || data.email.id !== selectedMailId) {\r\n          throw new Error(\"Invalid message response\");\r\n        }\r\n\r\n        messageDetailsCache.set(selectedMailId, data.email);\r\n        renderMailDetail(data.email, true);\r\n      } catch (error) {\r\n        showNotification(\"Message could not be loaded.\");\r\n      }\r\n    }\r\n\r\n    async function viewSource(btnEl) {\r\n      safeBlur(btnEl);\r\n      if (!selectedMailId || !currentAddress || !currentToken) return;\r\n\r\n      const sourceWindow = window.open(\"\", \"_blank\");\r\n      if (!sourceWindow) {\r\n        showNotification(\"Popup blocked.\");\r\n        return;\r\n      }\r\n      sourceWindow.opener = null;\r\n      sourceWindow.document.write('<p style=\"font:14px Arial,sans-serif;padding:20px;\">Loading source...<\/p>');\r\n      sourceWindow.document.close();\r\n\r\n      try {\r\n        const response = await fetch(`${WORKER_URL}\/source?address=${encodeURIComponent(currentAddress)}&id=${encodeURIComponent(selectedMailId)}`, {\r\n          method: \"GET\",\r\n          cache: \"no-store\",\r\n          headers: { \"X-Mailbox-Token\": currentToken }\r\n        });\r\n\r\n        if (!response.ok) throw new Error(`Request failed: ${response.status}`);\r\n        const data = await response.json();\r\n        sourceWindow.document.open();\r\n        sourceWindow.document.write(`<pre style=\"white-space:pre-wrap;word-break:break-word;font:13px\/1.5 monospace;\">${escapeHtml(data.source || \"\")}<\/pre>`);\r\n        sourceWindow.document.close();\r\n      } catch (error) {\r\n        sourceWindow.document.open();\r\n        sourceWindow.document.write('<p style=\"font:14px Arial,sans-serif;padding:20px;\">Raw source is not available.<\/p>');\r\n        sourceWindow.document.close();\r\n        showNotification(\"Raw source is not available.\");\r\n      }\r\n    }\r\n\r\n    function handleClick(event) {\r\n      const widget = document.querySelector(\"[data-luma-mailbox]\");\r\n      const domainDropdown = document.querySelector(\"[data-luma-domain-dropdown]\");\r\n      if (domainDropdown && !domainDropdown.contains(event.target)) closeDomainMenu(false);\r\n\r\n      const actionButton = event.target.closest(\"[data-luma-action]\");\r\n      if (actionButton) {\r\n        if (widget && !widget.contains(actionButton)) return;\r\n        const action = actionButton.dataset.lumaAction;\r\n        if (action === \"toggle-domain\") toggleDomainMenu();\r\n        if (action === \"copy\") copyEmail(actionButton);\r\n        if (action === \"refresh\") manualRefresh(actionButton);\r\n        if (action === \"change\") createMailbox();\r\n        if (action === \"delete\") deleteIdentity(actionButton);\r\n        if (action === \"delete-message\") deleteSelectedMessage(actionButton);\r\n        if (action === \"back\") backToList(actionButton);\r\n        if (action === \"source\") viewSource(actionButton);\r\n        return;\r\n      }\r\n\r\n      const domainOption = event.target.closest(\"[data-luma-domain-option]\");\r\n      if (domainOption) {\r\n        if (widget && !widget.contains(domainOption)) return;\r\n        selectMailboxDomain(domainOption.dataset.lumaDomainOption, true);\r\n        return;\r\n      }\r\n\r\n      const viewButton = event.target.closest(\".lm-view-btn\");\r\n      if (viewButton) {\r\n        if (widget && !widget.contains(viewButton)) return;\r\n        openMailDetailById(viewButton.dataset.mailId || \"\");\r\n      }\r\n    }\r\n\r\n    async function initTempMailWidget() {\r\n      if (window.__lumaMailboxInitializedV1) return;\r\n      window.__lumaMailboxInitializedV1 = true;\r\n\r\n      document.addEventListener(\"click\", handleClick);\r\n      document.addEventListener(\"keydown\", handleDomainKeydown);\r\n\r\n      const restored = restoreMailboxState();\r\n      await loadDomains();\r\n\r\n      const domainSelect = $(\"lm-domain-select\");\r\n      if (domainSelect) {\r\n        domainSelect.addEventListener(\"change\", () => {\r\n          selectMailboxDomain(domainSelect.value, false);\r\n        });\r\n      }\r\n\r\n      if (restored) {\r\n        backToList(null);\r\n        initCountdown();\r\n        resetMailboxView(\"\", true);\r\n        startListening(true);\r\n      } else {\r\n        createMailbox();\r\n      }\r\n\r\n      document.addEventListener(\"visibilitychange\", () => {\r\n        if (document.hidden) stopListening();\r\n        else startListening(true);\r\n      });\r\n\r\n      window.addEventListener(\"beforeunload\", () => {\r\n        saveMailboxState();\r\n        stopListening();\r\n      });\r\n    }\r\n\r\n    if (document.readyState === \"loading\") {\r\n      document.addEventListener(\"DOMContentLoaded\", initTempMailWidget, { once: true });\r\n    } else {\r\n      initTempMailWidget();\r\n    }\r\n  })();\r\n  <\/script>\r\n\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a52d24 elementor-widget elementor-widget-html\" data-id=\"6a52d24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- TempSMTP.uk homepage content \u2014 place directly BELOW the temporary mailbox widget in Elementor. -->\r\n<main class=\"tsmtp-home\" data-tsmtp-home>\r\n  <section class=\"tsmtp-home__trust\" aria-label=\"Service highlights\">\r\n    <div class=\"tsmtp-home__wrap tsmtp-home__trust-grid\">\r\n      <div>\r\n        <span class=\"tsmtp-home__trust-icon\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><line x1=\"17\" y1=\"8\" x2=\"23\" y2=\"14\"><\/line><line x1=\"23\" y1=\"8\" x2=\"17\" y2=\"14\"><\/line><\/svg>\r\n        <\/span>\r\n        <div>\r\n          <strong>No registration<\/strong>\r\n          <span>Start instantly without an account<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div>\r\n        <span class=\"tsmtp-home__trust-icon\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"><\/rect><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"><\/path><\/svg>\r\n        <\/span>\r\n        <div>\r\n          <strong>Private by default<\/strong>\r\n          <span>Keep your personal inbox hidden<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div>\r\n        <span class=\"tsmtp-home__trust-icon\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle><polyline points=\"12 6 12 12 16 14\"><\/polyline><\/svg>\r\n        <\/span>\r\n        <div>\r\n          <strong>Automatic expiry<\/strong>\r\n          <span>Temporary inboxes clean themselves up<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div>\r\n        <span class=\"tsmtp-home__trust-icon\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"><\/path><\/svg>\r\n        <\/span>\r\n        <div>\r\n          <strong>Free to use<\/strong>\r\n          <span>Create a disposable address in one click<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tsmtp-home__section\" id=\"how-it-works\">\r\n    <div class=\"tsmtp-home__wrap\">\r\n      <div class=\"tsmtp-home__heading\">\r\n        <span class=\"tsmtp-home__eyebrow\">Simple from the first click<\/span>\r\n        <h1>How temporary email works<\/h1>\r\n        <p>TempSMTP.uk gives you a short-lived inbox for sign-ups, verification messages and one-time downloads\u2014without exposing your everyday email address.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"tsmtp-home__steps\">\r\n        <article class=\"tsmtp-home__step\">\r\n          <span class=\"tsmtp-home__step-number\">01<\/span>\r\n          <span class=\"tsmtp-home__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3v12M7 10l5 5 5-5\"><\/path><path d=\"M5 21h14\"><\/path><\/svg>\r\n          <\/span>\r\n          <h2>Generate an address<\/h2>\r\n          <p>Your temporary address appears automatically. Choose an available domain or create a fresh inbox whenever you need one.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"tsmtp-home__step\">\r\n          <span class=\"tsmtp-home__step-number\">02<\/span>\r\n          <span class=\"tsmtp-home__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"3\"><\/rect><path d=\"m5 8 7 5 7-5\"><\/path><\/svg>\r\n          <\/span>\r\n          <h2>Use it online<\/h2>\r\n          <p>Copy the address and paste it into the website, app or service that asks for an email address.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"tsmtp-home__step\">\r\n          <span class=\"tsmtp-home__step-number\">03<\/span>\r\n          <span class=\"tsmtp-home__icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 3h6v6\"><\/path><path d=\"M10 14 21 3\"><\/path><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"><\/path><\/svg>\r\n          <\/span>\r\n          <h2>Read, then leave<\/h2>\r\n          <p>Incoming messages appear in the inbox. When the address expires, the temporary mailbox and its messages are removed.<\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tsmtp-home__section tsmtp-home__section--soft\" id=\"why-tempsmtp\">\r\n    <div class=\"tsmtp-home__wrap\">\r\n      <div class=\"tsmtp-home__heading\">\r\n        <span class=\"tsmtp-home__eyebrow\">A cleaner way to browse<\/span>\r\n        <h2>Why use a disposable email address?<\/h2>\r\n        <p>Use a separate, temporary inbox when a website needs an address but does not need access to your permanent identity.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"tsmtp-home__features\">\r\n        <!-- Feature 1: Reduce Spam -->\r\n        <article>\r\n          <span class=\"tsmtp-home__feature-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 12A10 10 0 0 0 12 2v10z\"><\/path><path d=\"M12 22a10 10 0 1 0 0-20v10z\" opacity=\"0.3\"><\/path><path d=\"M3 6h18\"><\/path><path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\"><\/path><path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\"><\/path><\/svg>\r\n          <\/span>\r\n          <h3>Reduce inbox spam<\/h3>\r\n          <p>Keep promotional follow-ups and mailing-list clutter away from the inbox you use every day.<\/p>\r\n        <\/article>\r\n\r\n        <!-- Feature 2: Limit Data Exposure -->\r\n        <article>\r\n          <span class=\"tsmtp-home__feature-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path><\/svg>\r\n          <\/span>\r\n          <h3>Limit data exposure<\/h3>\r\n          <p>A temporary address creates separation between a one-time online activity and your personal email account.<\/p>\r\n        <\/article>\r\n\r\n        <!-- Feature 3: Receive Messages Quickly -->\r\n        <article>\r\n          <span class=\"tsmtp-home__feature-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"><\/polygon><\/svg>\r\n          <\/span>\r\n          <h3>Receive messages quickly<\/h3>\r\n          <p>The inbox checks for new mail automatically, with a manual refresh button whenever you want it.<\/p>\r\n        <\/article>\r\n\r\n        <!-- Feature 4: No Account Required -->\r\n        <article>\r\n          <span class=\"tsmtp-home__feature-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"12\" cy=\"7\" r=\"4\"><\/circle><\/svg>\r\n          <\/span>\r\n          <h3>No account required<\/h3>\r\n          <p>There is no profile to create and no password to remember before generating an address.<\/p>\r\n        <\/article>\r\n\r\n        <!-- Feature 5: Change at Any Time -->\r\n        <article>\r\n          <span class=\"tsmtp-home__feature-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"23 4 23 10 17 10\"><\/polyline><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"><\/path><\/svg>\r\n          <\/span>\r\n          <h3>Change at any time<\/h3>\r\n          <p>Replace the current mailbox with a new address whenever an inbox is no longer useful.<\/p>\r\n        <\/article>\r\n\r\n        <!-- Feature 6: Works on Any Device -->\r\n        <article>\r\n          <span class=\"tsmtp-home__feature-icon\" aria-hidden=\"true\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\"><\/rect><line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"><\/line><\/svg>\r\n          <\/span>\r\n          <h3>Works on any device<\/h3>\r\n          <p>The responsive inbox works in modern desktop and mobile browsers without installing an app.<\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tsmtp-home__section\">\r\n    <div class=\"tsmtp-home__wrap tsmtp-home__split\">\r\n      <div>\r\n        <span class=\"tsmtp-home__eyebrow\">Useful when privacy matters<\/span>\r\n        <h2>Common ways to use temporary email<\/h2>\r\n        <p class=\"tsmtp-home__lead\">A disposable inbox is helpful for low-risk, short-term activities where you only need to receive one or two messages.<\/p>\r\n        <ul class=\"tsmtp-home__check-list\">\r\n          <li>\r\n            <span>\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg>\r\n            <\/span> \r\n            Testing a new website or application\r\n          <\/li>\r\n          <li>\r\n            <span>\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg>\r\n            <\/span> \r\n            Receiving a one-time confirmation message\r\n          <\/li>\r\n          <li>\r\n            <span>\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg>\r\n            <\/span> \r\n            Accessing a download, guide or public resource\r\n          <\/li>\r\n          <li>\r\n            <span>\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg>\r\n            <\/span> \r\n            Trying an online service before sharing your main email\r\n          <\/li>\r\n          <li>\r\n            <span>\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg>\r\n            <\/span> \r\n            Separating short-term sign-ups from personal communication\r\n          <\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <aside class=\"tsmtp-home__warning\">\r\n        <span class=\"tsmtp-home__warning-icon\" aria-hidden=\"true\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z\"><\/path><path d=\"M12 8v4M12 16h.01\"><\/path><\/svg>\r\n        <\/span>\r\n        <h3>Know when not to use it<\/h3>\r\n        <p>Temporary inboxes expire and cannot be recovered. Do not use one for banking, government services, healthcare, password recovery, purchases you may need to dispute, or any account you need to keep.<\/p>\r\n        <a href=\"\/blog\/#safe-use\">Read the safe-use guide \u2192<\/a>\r\n      <\/aside>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tsmtp-home__section tsmtp-home__section--dark\">\r\n    <div class=\"tsmtp-home__wrap tsmtp-home__privacy\">\r\n      <div class=\"tsmtp-home__privacy-mark\" aria-hidden=\"true\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z\"><\/path><path d=\"m9 12 2 2 4-5\"><\/path><\/svg>\r\n      <\/div>\r\n      <div>\r\n        <span class=\"tsmtp-home__eyebrow\">Designed for short-term use<\/span>\r\n        <h2>Privacy starts with sharing less<\/h2>\r\n        <p>Every time you give a permanent address to a new service, you create another place where it may be stored. A temporary mailbox helps you share less when a long-term email relationship is unnecessary.<\/p>\r\n      <\/div>\r\n      <a class=\"tsmtp-home__outline-button\" href=\"\/privacy-policy\/\">Read our privacy policy<\/a>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tsmtp-home__section\" id=\"faq\">\r\n    <div class=\"tsmtp-home__wrap tsmtp-home__faq-layout\">\r\n      <div class=\"tsmtp-home__faq-intro\">\r\n        <span class=\"tsmtp-home__eyebrow\">Questions, answered<\/span>\r\n        <h2>Temporary email FAQ<\/h2>\r\n        <p>Everything you need to know before using your short-lived inbox.<\/p>\r\n        <a href=\"\/contact\/\">Still need help? Contact us \u2192<\/a>\r\n      <\/div>\r\n\r\n      <div class=\"tsmtp-home__faq-list\">\r\n        <details open>\r\n          <summary>What is a temporary email address?<span aria-hidden=\"true\">+<\/span><\/summary>\r\n          <p>It is a short-lived email address that can receive messages without revealing the permanent address you use for personal or work communication.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>Do I need to register?<span aria-hidden=\"true\">+<\/span><\/summary>\r\n          <p>No. The mailbox is generated in your browser without creating an account or setting a password.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>How long does the inbox last?<span aria-hidden=\"true\">+<\/span><\/summary>\r\n          <p>The countdown shown beside your address displays the remaining lifetime. The current default is approximately ten minutes, but service settings may change.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>Can I recover an expired mailbox?<span aria-hidden=\"true\">+<\/span><\/summary>\r\n          <p>No. Temporary mailboxes and their messages are not designed for recovery. Use a permanent address for anything you may need later.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>Why has my message not arrived?<span aria-hidden=\"true\">+<\/span><\/summary>\r\n          <p>Delivery can take a short time. Confirm that the address was copied correctly, select Refresh, and check that the sender accepts temporary email domains.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>Can I send email from this inbox?<span aria-hidden=\"true\">+<\/span><\/summary>\r\n          <p>No. TempSMTP.uk is designed for receiving temporary messages, not for sending or replying to email.<\/p>\r\n        <\/details>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"tsmtp-home__cta-section\">\r\n    <div class=\"tsmtp-home__wrap tsmtp-home__cta-card\">\r\n      <div>\r\n        <span>Ready when you are<\/span>\r\n        <h2>Create a private inbox in one click<\/h2>\r\n        <p>No registration, no password and no commitment.<\/p>\r\n      <\/div>\r\n      <a href=\"#temp-mail\">Get a temporary email<\/a>\r\n    <\/div>\r\n  <\/section>\r\n<\/main>\r\n\r\n<style>\r\n  .tsmtp-home, .tsmtp-home * { box-sizing: border-box; }\r\n  .tsmtp-home {\r\n    --smtp-graphite:#071b22; --smtp-basalt:#06151c; --smtp-teal:#0f766e; --smtp-cyan:#0891b2;\r\n    --smtp-aqua:#22d3ee; --smtp-amber:#f59e0b; --smtp-sun:#fb7185; --smtp-ink:#17252f;\r\n    --smtp-muted:#64748b; --smtp-line:#d9eef2; --smtp-soft:#ecfeff; --smtp-white:#fff;\r\n    width:100%; color:var(--smtp-ink); background:#fff;\r\n    font-family:Inter,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;\r\n  }\r\n  .tsmtp-home__wrap { width:min(1120px,calc(100% - 40px)); margin:0 auto; }\r\n  .tsmtp-home__section { padding:96px 0; scroll-margin-top:90px; }\r\n  .tsmtp-home__section--soft { background:linear-gradient(180deg,#f8fafc 0%,#ecfeff 100%); }\r\n  .tsmtp-home__heading { max-width:720px; margin:0 auto 52px; text-align:center; }\r\n  .tsmtp-home__eyebrow { display:block; margin-bottom:12px; color:var(--smtp-cyan); font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }\r\n  .tsmtp-home h1,.tsmtp-home h2,.tsmtp-home h3 { color:var(--smtp-ink)!important; font-family:inherit; }\r\n  .tsmtp-home h1,.tsmtp-home h2 { margin:0 0 18px; font-size:clamp(30px,4vw,44px); line-height:1.13; letter-spacing:-.035em; }\r\n  .tsmtp-home h3 { margin:0 0 10px; font-size:18px; line-height:1.3; }\r\n  .tsmtp-home p { color:var(--smtp-muted); }\r\n  .tsmtp-home__heading p,.tsmtp-home__lead { margin:0; font-size:17px; line-height:1.75; }\r\n  \r\n  \/* Trust Bar Adjustments *\/\r\n  .tsmtp-home__trust { padding:28px 0; background:#fff; border-bottom:1px solid var(--smtp-line); }\r\n  .tsmtp-home__trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }\r\n  .tsmtp-home__trust-grid>div { display:flex; align-items:center; gap:14px; padding:4px 24px; border-right:1px solid var(--smtp-line); }\r\n  .tsmtp-home__trust-grid>div:first-child { padding-left:0; }\r\n  .tsmtp-home__trust-grid>div:last-child { border:0; }\r\n  .tsmtp-home__trust-icon { width:22px; height:22px; flex:0 0 22px; color:var(--smtp-cyan); }\r\n  .tsmtp-home__trust-icon svg { width:100%; height:100%; display:block; }\r\n  .tsmtp-home__trust strong,.tsmtp-home__trust span { display:block; }\r\n  .tsmtp-home__trust strong { margin-bottom:3px; color:var(--smtp-ink); font-size:14px; line-height:1.2; }\r\n  .tsmtp-home__trust span { color:#64748b; font-size:12px; line-height:1.4; }\r\n\r\n  \/* Steps *\/\r\n  .tsmtp-home__steps { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }\r\n  .tsmtp-home__step { position:relative; padding:34px; overflow:hidden; border:1px solid var(--smtp-line); border-radius:8px; background:#fff; box-shadow:0 14px 35px rgba(15, 23, 42,.06); }\r\n  .tsmtp-home__step-number { position:absolute; top:18px; right:22px; color:#eeeafa; font-size:42px; font-weight:800; }\r\n  .tsmtp-home__icon { width:54px; height:54px; display:flex; align-items:center; justify-content:center; margin-bottom:24px; border-radius:7px; color:var(--smtp-cyan); background:rgba(34, 211, 238,.13); }\r\n  .tsmtp-home__icon svg { width:28px; height:28px; }\r\n  .tsmtp-home__step p,.tsmtp-home__features p { margin:0; font-size:14px; line-height:1.7; }\r\n  \r\n  \/* Features Icon Fix *\/\r\n  .tsmtp-home__features { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }\r\n  .tsmtp-home__features article { padding:28px; border:1px solid rgba(34, 211, 238,.17); border-radius:7px; background:rgba(255,255,255,.82); }\r\n  .tsmtp-home__feature-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; border-radius:6px; color:#fff; background:linear-gradient(132deg,var(--smtp-amber),var(--smtp-sun)); }\r\n  .tsmtp-home__feature-icon svg { width:22px; height:22px; display:block; }\r\n\r\n  \/* Lists & Icons *\/\r\n  .tsmtp-home__split { display:grid; grid-template-columns:1.2fr .8fr; gap:72px; align-items:center; }\r\n  .tsmtp-home__split h2 { max-width:650px; }\r\n  .tsmtp-home__check-list { display:grid; gap:15px; margin:30px 0 0; padding:0; list-style:none; }\r\n  .tsmtp-home__check-list li { display:flex; align-items:center; gap:12px; color:#334155; font-size:14px; line-height:1.5; }\r\n  .tsmtp-home__check-list span { width:23px; height:23px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 23px; border-radius:50%; color:#fff; background:var(--smtp-cyan); }\r\n  .tsmtp-home__check-list span svg { width:13px; height:13px; }\r\n\r\n  \/* Warning Section *\/\r\n  .tsmtp-home__warning { padding:34px; border:1px solid rgba(245, 158, 11,.26); border-radius:8px; background:linear-gradient(132deg,#fff7ed,#fffbeb); box-shadow:0 16px 40px rgba(251, 113, 133,.08); }\r\n  .tsmtp-home__warning-icon { width:51px; height:51px; display:flex; align-items:center; justify-content:center; margin-bottom:22px; border-radius:7px; color:var(--smtp-sun); background:rgba(245, 158, 11,.13); }\r\n  .tsmtp-home__warning-icon svg { width:27px; height:27px; }\r\n  .tsmtp-home__warning p { margin:0 0 18px; font-size:14px; line-height:1.75; }\r\n  .tsmtp-home__warning a,.tsmtp-home__faq-intro a { color:var(--smtp-cyan)!important; font-size:13px; font-weight:750; text-decoration:none!important; }\r\n\r\n  \/* Privacy Section *\/\r\n  .tsmtp-home__section--dark { color:#fff; background:linear-gradient(120deg,var(--smtp-graphite),var(--smtp-teal) 58%,var(--smtp-cyan)); }\r\n  .tsmtp-home__privacy { display:grid; grid-template-columns:88px 1fr auto; align-items:center; gap:34px; }\r\n  .tsmtp-home__privacy-mark { width:78px; height:78px; display:flex; align-items:center; justify-content:center; border-radius:10px; color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.14); }\r\n  .tsmtp-home__privacy-mark svg { width:40px; height:40px; }\r\n  .tsmtp-home__section--dark h2 { color:#fff!important; }\r\n  .tsmtp-home__section--dark .tsmtp-home__eyebrow { color:#a5f3fc; }\r\n  .tsmtp-home__section--dark p { max-width:690px; margin:0; color:#cbd5e1; font-size:15px; line-height:1.75; }\r\n  .tsmtp-home__outline-button { padding:13px 18px; border:1px solid rgba(255,255,255,.38); border-radius:6px; color:#fff!important; font-size:13px; font-weight:750; text-decoration:none!important; white-space:nowrap; }\r\n\r\n  \/* FAQ Section *\/\r\n  .tsmtp-home__faq-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:80px; align-items:start; }\r\n  .tsmtp-home__faq-intro { position:sticky; top:110px; }\r\n  .tsmtp-home__faq-intro p { margin:0 0 22px; font-size:15px; line-height:1.7; }\r\n  .tsmtp-home__faq-list { border-top:1px solid var(--smtp-line); }\r\n  .tsmtp-home__faq-list details { border-bottom:1px solid var(--smtp-line); }\r\n  .tsmtp-home__faq-list summary { display:flex; justify-content:space-between; gap:20px; padding:23px 0; color:var(--smtp-ink); font-size:15px; font-weight:700; cursor:pointer; list-style:none; }\r\n  .tsmtp-home__faq-list summary::-webkit-details-marker { display:none; }\r\n  .tsmtp-home__faq-list summary span { color:var(--smtp-cyan); font-size:21px; transition:transform .2s; }\r\n  .tsmtp-home__faq-list details[open] summary span { transform:rotate(45deg); }\r\n  .tsmtp-home__faq-list details p { margin:-5px 40px 24px 0; font-size:14px; line-height:1.75; }\r\n\r\n  \/* CTA Section *\/\r\n  .tsmtp-home__cta-section { padding:0 0 96px; }\r\n  .tsmtp-home__cta-card { display:flex; align-items:center; justify-content:space-between; gap:35px; padding:45px 52px; border-radius:10px; color:#fff; background:linear-gradient(120deg,#071b22,#0f766e 62%,#0891b2); box-shadow:0 22px 55px rgba(15, 118, 110,.22); }\r\n  .tsmtp-home__cta-card span { color:#a5f3fc; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }\r\n  .tsmtp-home__cta-card h2 { margin:8px 0 8px; color:#fff!important; font-size:clamp(26px,3.3vw,38px); }\r\n  .tsmtp-home__cta-card p { margin:0; color:#cbd5e1; font-size:14px; }\r\n  .tsmtp-home__cta-card>a { padding:15px 21px; border-radius:6px; color:#fff!important; background:linear-gradient(132deg,var(--smtp-amber),var(--smtp-sun)); box-shadow:0 10px 25px rgba(245, 158, 11,.28); font-size:14px; font-weight:800; text-decoration:none!important; white-space:nowrap; }\r\n\r\n  \/* Responsive Design *\/\r\n  @media(max-width:900px){\r\n    .tsmtp-home__trust-grid{grid-template-columns:repeat(2,1fr);gap:24px 0}.tsmtp-home__trust-grid>div:nth-child(2){border:0}.tsmtp-home__trust-grid>div:nth-child(3){padding-left:0}\r\n    .tsmtp-home__steps,.tsmtp-home__features{grid-template-columns:repeat(2,1fr)}.tsmtp-home__step:last-child{grid-column:1\/-1}\r\n    .tsmtp-home__split,.tsmtp-home__faq-layout{grid-template-columns:1fr;gap:45px}.tsmtp-home__faq-intro{position:static}.tsmtp-home__privacy{grid-template-columns:74px 1fr}.tsmtp-home__outline-button{grid-column:2}\r\n  }\r\n  @media(max-width:620px){\r\n    .tsmtp-home__wrap{width:min(100% - 28px,1120px)}.tsmtp-home__section{padding:70px 0}.tsmtp-home__trust-grid,.tsmtp-home__steps,.tsmtp-home__features{grid-template-columns:1fr}\r\n    .tsmtp-home__trust-grid{gap:0}.tsmtp-home__trust-grid>div{padding:14px 0;border:0;border-bottom:1px solid var(--smtp-line)!important}.tsmtp-home__trust-grid>div:last-child{border:0!important}\r\n    .tsmtp-home__step:last-child{grid-column:auto}.tsmtp-home__heading{margin-bottom:38px}.tsmtp-home__privacy{grid-template-columns:1fr}.tsmtp-home__privacy-mark{width:64px;height:64px}.tsmtp-home__outline-button{grid-column:auto;width:fit-content}\r\n    .tsmtp-home__cta-section{padding-bottom:70px}.tsmtp-home__cta-card{padding:36px 26px;flex-direction:column;align-items:flex-start}.tsmtp-home__cta-card>a{width:100%;text-align:center}\r\n  }\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Your Private Inbox, Ready Now Inbox expires in: 10:00 Choose an inbox domain Loading domains&#8230; @ Loading domains&#8230; Create a private, short-lived inbox in one click. No sign-up, no personal details, and no clutter in your everyday email. Copy Refresh Change Delete SENDER SUBJECT VIEW Waiting for incoming emails&#8230; Back to list Source Delete ? [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_seopress_titles_title":"Temp Mail - Free Anonymous Temporary Email Generator","_seopress_titles_desc":"Generate disposable email addresses instantly. Keep your real inbox safe and spam-free with no registration required.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":28,"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":132,"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/pages\/9\/revisions\/132"}],"wp:attachment":[{"href":"https:\/\/tempsmtp.uk\/zh\/wp-json\/wp\/v2\/media?parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}