index.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Parsell Family</title>
  7. <link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMic+PHJlY3Qgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJyByeD0nNycgZmlsbD0nIzFiMTgzMCcvPjxwYXRoIGQ9J00xNiA2IEwyNiAxNC41IEwyMy41IDE0LjUgTDIzLjUgMjUgTDE4LjUgMjUgTDE4LjUgMTguNSBMMTMuNSAxOC41IEwxMy41IDI1IEw4LjUgMjUgTDguNSAxNC41IEw2IDE0LjUgWicgZmlsbD0nI2ZmY2NiOCcvPjwvc3ZnPg==">
  8. <link rel="preconnect" href="https://fonts.googleapis.com">
  9. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  10. <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
  11. <style>
  12. * { box-sizing: border-box; margin: 0; padding: 0; }
  13. html, body {
  14. height: 100%;
  15. font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  16. color: #fff;
  17. overflow: hidden;
  18. }
  19. body {
  20. display: flex;
  21. align-items: center;
  22. justify-content: center;
  23. padding: 1.5rem;
  24. /* Layered: dark tint over the wave-pattern image so the frosted card has
  25. reliable contrast regardless of which part of the pattern sits behind it.
  26. background-tile.jpg is a 2x2 mirrored arrangement of the original — each
  27. edge meets its own mirror, so the pattern tiles seamlessly. Displayed at
  28. 960px so each mirror panel is 480px (the original tile size). */
  29. background:
  30. linear-gradient(rgba(20, 18, 32, 0.45), rgba(20, 18, 32, 0.45)),
  31. url('/background.jpg') 0 0 / 960px repeat fixed;
  32. }
  33. /* --- Frosted card --- */
  34. .card {
  35. max-width: 480px;
  36. width: 100%;
  37. background: rgba(255, 255, 255, 0.06);
  38. backdrop-filter: blur(24px) saturate(160%);
  39. -webkit-backdrop-filter: blur(24px) saturate(160%);
  40. border: 1px solid rgba(255, 255, 255, 0.12);
  41. border-radius: 24px;
  42. padding: 2.75rem 2.25rem;
  43. text-align: center;
  44. box-shadow:
  45. 0 14px 50px rgba(0, 0, 0, 0.4),
  46. inset 0 1px 0 rgba(255, 255, 255, 0.1);
  47. }
  48. h1 {
  49. font-size: 2.15rem;
  50. font-weight: 700;
  51. letter-spacing: -0.02em;
  52. margin-bottom: 1.5rem;
  53. padding-bottom: 1.5rem;
  54. border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  55. background: linear-gradient(135deg, #ffffff 0%, #ffd9c8 100%);
  56. -webkit-background-clip: text;
  57. -webkit-text-fill-color: transparent;
  58. background-clip: text;
  59. }
  60. .services {
  61. display: flex;
  62. flex-wrap: wrap;
  63. justify-content: center;
  64. gap: 0.75rem;
  65. }
  66. .service-btn {
  67. width: 64px;
  68. height: 64px;
  69. display: flex;
  70. align-items: center;
  71. justify-content: center;
  72. background: rgba(255, 255, 255, 0.05);
  73. border: 1px solid rgba(255, 255, 255, 0.1);
  74. border-radius: 50%;
  75. text-decoration: none;
  76. transition: background 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  77. }
  78. .service-btn:hover {
  79. background: rgba(255, 255, 255, 0.12);
  80. border-color: rgba(255, 255, 255, 0.28);
  81. transform: translateY(-2px);
  82. box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
  83. }
  84. .service-btn .icon {
  85. width: 26px;
  86. height: 26px;
  87. background: rgba(255, 255, 255, 0.85);
  88. mask: var(--mask) center / contain no-repeat;
  89. -webkit-mask: var(--mask) center / contain no-repeat;
  90. transition: background 0.15s;
  91. }
  92. .service-btn:hover .icon {
  93. background: #fff;
  94. }
  95. </style>
  96. </head>
  97. <body>
  98. <div class="card">
  99. <h1>Parsell Family</h1>
  100. <div class="services">
  101. <a class="service-btn" href="https://mail.proton.me" title="Email" aria-label="Email">
  102. <span class="icon" aria-hidden="true" style="--mask: url(https://cdn.jsdelivr.net/npm/lucide-static/icons/mail.svg)"></span>
  103. </a>
  104. <a class="service-btn" href="https://watch.parsell.me" title="Media" aria-label="Media">
  105. <span class="icon" aria-hidden="true" style="--mask: url(https://cdn.jsdelivr.net/npm/lucide-static/icons/circle-play.svg)"></span>
  106. </a>
  107. <a class="service-btn" href="https://photos.parsell.me" title="Photos" aria-label="Photos">
  108. <span class="icon" aria-hidden="true" style="--mask: url(https://cdn.jsdelivr.net/npm/lucide-static/icons/images.svg)"></span>
  109. </a>
  110. <a class="service-btn" href="https://git.parsell.me" title="Git" aria-label="Git">
  111. <span class="icon" aria-hidden="true" style="--mask: url(https://cdn.jsdelivr.net/npm/lucide-static/icons/git-branch.svg)"></span>
  112. </a>
  113. <a class="service-btn" href="https://login.parsell.me" title="Sign in" aria-label="Sign in">
  114. <span class="icon" aria-hidden="true" style="--mask: url(https://cdn.jsdelivr.net/npm/lucide-static/icons/key-round.svg)"></span>
  115. </a>
  116. </div>
  117. </div>
  118. </body>
  119. </html>