@font-face {
  font-family: Unbounded;
  src: url("../assets/unbounded.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  size-adjust: 95%;
}

/* Base colors and typography. Theme-specific surfaces are adjusted below. */
:root {
  color-scheme: dark;
  font-family: Unbounded, sans-serif;
  font-size: 13px;
  color: #a8a29e;
  background: #090909;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* {
  box-sizing: border-box;
}

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  background: #090909;
}

a {
  color: inherit;
  text-decoration: none;
}

.page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px 16px;
}

.profile {
  width: min(100%, 750px);
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.panel {
  border: 1px solid rgba(120, 114, 109, 0.13);
  border-radius: 11px;
  background: rgba(20, 20, 23, 0.314);
}

.profile-card {
  position: relative;
  min-height: 340px;
  padding: 35px;
  overflow: hidden;
}

.identity {
  display: flex;
  align-items: center;
  gap: 26px;
  min-height: 92px;
}

.avatar-wrap {
  position: relative;
  flex: 0 0 92px;
  width: 92px;
  height: 92px;
}

.avatar {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(120, 114, 109, 0.13);
  border-radius: 50%;
  object-fit: cover;
}

.decoration {
  position: absolute;
  inset: -8px;
  z-index: 2;
  width: calc(100% + 16px);
  height: calc(100% + 16px);
  object-fit: contain;
  pointer-events: none;
}

.name-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  transform: translateY(-8px);
}

h1 {
  margin: 0;
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
}

.bio {
  margin: 24px 0 0;
  color: #a8a29e;
  font-size: 11px;
  line-height: 16px;
}

.details {
  display: grid;
  gap: 20px;
  margin-top: 24px;
}

.detail {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 22px;
  color: #a8a29e;
  font-size: 11px;
  line-height: 16px;
}

.detail svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  color: #ff7a1a;
  filter: drop-shadow(0 0 5px rgba(255, 105, 0, 0.7));
}

.socials {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 64px;
}

.social {
  display: inline-grid;
  width: 26px;
  height: 26px;
  place-items: center;
  padding: 0;
  border: 0;
  background: none;
  color: #ff7a1a;
  cursor: pointer;
  filter: drop-shadow(0 0 6px rgba(255, 105, 0, 0.75));
  transition: transform 140ms ease, color 140ms ease;
}

.social:hover {
  transform: translateY(-2px);
  color: #ffa04e;
}

.social svg {
  width: 24px;
  height: 24px;
}

.presence {
  min-height: 88px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px;
}

.presence-avatar {
  position: relative;
  flex: 0 0 66px;
  width: 66px;
  height: 66px;
}

.presence-avatar > img:first-child {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.presence-avatar .decoration {
  inset: -7px;
  width: calc(100% + 14px);
  height: calc(100% + 14px);
}

.status-dot {
  position: absolute;
  right: -2px;
  bottom: -2px;
  z-index: 3;
  width: 16px;
  height: 16px;
  border: 2px solid #171719;
  border-radius: 50%;
  background: #ed4245;
}

.status-dot::after {
  position: absolute;
  top: 5px;
  left: 3px;
  width: 6px;
  height: 2px;
  border-radius: 2px;
  background: #fff;
  content: "";
}

.presence-copy {
  min-width: 0;
  flex: 1;
}

.presence-name {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 2px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
}

.presence-name .badge {
  width: 12px;
  height: 12px;
}

.activity {
  overflow: hidden;
  color: #a8a29e;
  font-size: 11px;
  line-height: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity p {
  margin: 0;
}

.status-message {
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 100px;
  padding: 7px 16px;
  border: 1px solid rgba(120, 114, 109, 0.13);
  border-radius: 999px;
  color: #d6d3d1;
  font-size: 11px;
  white-space: nowrap;
}

.status-message img {
  width: 12px;
  height: 12px;
}

.spotify {
  height: 82px;
  overflow: hidden;
  border-radius: 11px;
}

.spotify iframe {
  display: block;
  width: 100%;
  height: 80px;
  border: 0;
  border-radius: 12px;
}

.toast {
  position: fixed;
  bottom: 20px;
  left: 50%;
  z-index: 5;
  padding: 10px 14px;
  border: 1px solid rgba(120, 114, 109, 0.22);
  border-radius: 9px;
  background: #171719;
  color: #fff;
  font-size: 11px;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 8px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.toast.visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

@media (max-width: 560px) {
  .page {
    place-items: start center;
    padding: 24px 12px 76px;
  }

  .profile {
    gap: 16px;
  }

  .profile-card {
    min-height: 0;
    padding: 28px 22px;
  }

  .identity {
    gap: 20px;
  }

  .avatar-wrap {
    flex-basis: 76px;
    width: 76px;
    height: 76px;
  }

  h1 {
    font-size: 18px;
  }

  .bio {
    margin-top: 22px;
  }

  .details {
    gap: 17px;
    margin-top: 21px;
  }

  .socials {
    margin-top: 62px;
  }

  .presence {
    gap: 11px;
  }

  .presence-avatar {
    flex-basis: 54px;
    width: 54px;
    height: 54px;
  }

  .status-message {
    padding: 6px 9px;
  }

}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

:root {
  color-scheme: light;
  font-family: "Segoe UI", Tahoma, Arial, sans-serif;
  font-size: 14px;
  color: #063d67;
  background: #00a8e8;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  position: relative;
  overflow-x: hidden;
  background:
    radial-gradient(ellipse at 18% 14%, rgba(255, 255, 255, 0.95) 0, rgba(255, 255, 255, 0.42) 8%, transparent 26%),
    radial-gradient(ellipse at 82% 4%, rgba(255, 255, 255, 0.72) 0, rgba(255, 255, 255, 0.18) 12%, transparent 34%),
    radial-gradient(ellipse at 58% 74%, rgba(57, 255, 20, 0.42) 0, transparent 29%),
    linear-gradient(165deg, #00a8e8 0%, #62e4f2 40%, #19bfdf 68%, #1dbd79 100%);
  background-attachment: fixed;
}

.page {
  position: relative;
  z-index: 1;
}

.eco-scene {
  position: fixed;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.aurora {
  position: absolute;
  top: -18%;
  left: -18%;
  width: 136%;
  height: 42%;
  border-radius: 50%;
  background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, 0.35) 38%, rgba(57, 255, 20, 0.28) 51%, rgba(255, 255, 255, 0.3) 66%, transparent 82%);
  filter: blur(22px);
  opacity: 0.8;
  transform: rotate(-8deg);
  animation: aurora-drift 18s ease-in-out infinite alternate;
}

.bubble {
  position: absolute;
  bottom: -110px;
  --bubble-size: 28px;
  --bubble-duration: 19s;
  width: var(--bubble-size);
  height: var(--bubble-size);
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 30% 23%, rgba(255, 255, 255, 1) 0 5%, rgba(255, 255, 255, 0.62) 6% 10%, transparent 22%),
    radial-gradient(ellipse at 70% 82%, rgba(255, 90, 204, 0.35), transparent 33%),
    radial-gradient(ellipse at 82% 65%, rgba(57, 255, 20, 0.27), transparent 40%),
    conic-gradient(from 20deg at 50% 50%, rgba(255, 255, 255, 0.08), rgba(255, 104, 206, 0.23), rgba(255, 239, 120, 0.18), rgba(82, 255, 217, 0.24), rgba(116, 145, 255, 0.2), rgba(255, 255, 255, 0.08)),
    linear-gradient(140deg, rgba(255, 255, 255, 0.42), rgba(0, 168, 232, 0.04) 48%, rgba(255, 255, 255, 0.45));
  box-shadow: inset 0 0 14px rgba(255, 255, 255, 0.75), 0 0 15px rgba(255, 255, 255, 0.38);
  animation: bubble-rise var(--bubble-duration) linear infinite;
}

.bubbles-underwater {
  position: absolute;
  z-index: 1;
  top: 51.8%;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  pointer-events: none;
}

.bubbles-underwater .bubble {
  display: block;
  bottom: -60px;
  animation-name: lagoon-bubble-rise;
  border-color: rgba(217, 255, 255, 0.5);
  background:
    radial-gradient(ellipse at 30% 23%, rgba(255, 255, 255, 0.82) 0 5%, rgba(205, 255, 255, 0.34) 6% 10%, transparent 22%),
    linear-gradient(140deg, rgba(168, 248, 255, 0.12), rgba(39, 182, 211, 0.06) 48%, rgba(255, 255, 255, 0.12));
  box-shadow: inset 0 0 8px rgba(188, 250, 255, 0.24), 0 0 8px rgba(88, 215, 236, 0.12);
}

.bubbles-underwater .bubble::before {
  border-color: rgba(225, 255, 255, 0.28);
  box-shadow: inset 1px 1px 3px rgba(255, 255, 255, 0.44);
}

.bubbles-underwater .bubble::after {
  background: rgba(255, 255, 255, 0.62);
}

.bubbles-underwater .bubble:nth-child(1) {
  left: 17%;
  --bubble-size: 20px;
  --bubble-duration: 13s;
  animation-delay: -4s;
}

.bubbles-underwater .bubble:nth-child(2) {
  left: 71%;
  --bubble-size: 28px;
  --bubble-duration: 17s;
  animation-delay: -11s;
}

.bubbles-underwater .bubble:nth-child(3) {
  left: 43%;
  --bubble-size: 15px;
  --bubble-duration: 15s;
  animation-delay: -8s;
}

@keyframes lagoon-bubble-rise {
  0% { opacity: 0; transform: translate3d(0, 0, 0) scale(0.8); }
  12% { opacity: 0.72; }
  50% { transform: translate3d(12px, -22vh, 0) scale(1); }
  88% { opacity: 0.58; }
  100% { opacity: 0; transform: translate3d(-8px, -44vh, 0) scale(1.08); }
}

.bubble::before,
.bubble::after {
  position: absolute;
  border-radius: 50%;
  content: "";
}

.bubble::before {
  inset: 7%;
  border: 1px solid rgba(255, 255, 255, 0.42);
  box-shadow: inset 1px 1px 3px rgba(255, 255, 255, 0.82);
}

.bubble::after {
  top: 20%;
  left: 20%;
  width: 17%;
  height: 8%;
  background: rgba(255, 255, 255, 0.9);
  transform: rotate(-35deg);
}

.bubble:nth-of-type(2) { --bubble-size: 44px; --bubble-duration: 20s; left: 8%; animation-delay: -5s; }
.bubble:nth-of-type(3) { --bubble-size: 24px; --bubble-duration: 16s; left: 21%; animation-delay: -12s; }
.bubble:nth-of-type(4) { --bubble-size: 68px; --bubble-duration: 24s; left: 37%; animation-delay: -17s; }
.bubble:nth-of-type(5) { --bubble-size: 32px; --bubble-duration: 18s; left: 63%; animation-delay: -8s; }
.bubble:nth-of-type(6) { --bubble-size: 54px; --bubble-duration: 22s; left: 79%; animation-delay: -14s; }
.bubble:nth-of-type(7) { --bubble-size: 20px; --bubble-duration: 15s; left: 92%; animation-delay: -3s; }

.eco-ornaments {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.profile {
  gap: 25px;
}

.panel {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.96);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.92) 0%, rgba(174, 245, 255, 0.9) 22%, rgba(34, 190, 236, 0.91) 55%, rgba(0, 111, 182, 0.94) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.95),
    inset 0 -8px 18px rgba(0, 79, 143, 0.28),
    0 12px 22px rgba(0, 73, 126, 0.25),
    0 2px 4px rgba(255, 255, 255, 0.75);
}

.panel::before {
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 52%;
  border-radius: inherit;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.56) 0%, rgba(255, 255, 255, 0.4) 48%, rgba(255, 255, 255, 0.08) 50%, transparent 100%);
  content: "";
  pointer-events: none;
}

.panel::after {
  position: absolute;
  z-index: 3;
  inset: -30% auto -30% -45%;
  width: 28%;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.64), transparent);
  content: "";
  pointer-events: none;
  transform: skewX(-22deg);
  animation: card-glint 5s ease-in-out infinite;
}

.profile-card {
  min-height: 340px;
  border-radius: 48px 28px 48px 28px;
  background:
    radial-gradient(ellipse at 0 0, rgba(255, 255, 255, 0.75), transparent 47%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.86) 0%, rgba(148, 239, 255, 0.92) 25%, rgba(0, 168, 232, 0.9) 59%, rgba(0, 91, 169, 0.96) 100%);
}

.profile-card > *,
.presence > *,
.spotify > * {
  position: relative;
  z-index: 1;
}

.identity {
  min-height: 92px;
}

.avatar-wrap {
  filter: drop-shadow(0 5px 6px rgba(0, 74, 134, 0.4));
}

.avatar {
  border: 3px solid #fff;
  box-shadow: 0 0 0 3px rgba(0, 168, 232, 0.8), inset 0 2px 3px rgba(255, 255, 255, 0.8);
}

.name-block {
  transform: translateY(-8px);
}

h1 {
  color: #063d67;
  font-family: "Segoe UI", Tahoma, Arial, sans-serif;
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -0.6px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9), 0 2px 4px rgba(0, 68, 117, 0.25);
}

.bio,
.detail {
  color: #073b60;
  font-size: 13px;
  font-weight: 600;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
}

.details {
  gap: 20px;
}

.detail svg {
  width: 18px;
  height: 18px;
  flex-basis: 18px;
  color: #39cfff;
  filter: drop-shadow(0 1px 1px #fff) drop-shadow(0 2px 4px rgba(0, 94, 174, 0.7));
}

.socials {
  margin-top: 64px;
}

.social {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  background: linear-gradient(145deg, #ffffff 0%, #bff7ff 22%, #29c9ff 54%, #0073c6 100%);
  color: #fff;
  box-shadow:
    inset 0 3px 4px rgba(255, 255, 255, 0.95),
    inset 0 -3px 5px rgba(0, 70, 144, 0.55),
    0 3px 7px rgba(0, 70, 144, 0.5),
    0 0 9px rgba(255, 255, 255, 0.75);
  filter: none;
  transition: transform 140ms ease, box-shadow 140ms ease;
}

.social:hover {
  transform: translateY(1px) scale(0.96);
  color: #fff;
  box-shadow: inset 0 2px 8px rgba(0, 63, 125, 0.55), 0 1px 2px rgba(255, 255, 255, 0.9);
}

.social svg {
  width: 21px;
  height: 21px;
  filter: drop-shadow(0 1px 1px rgba(0, 68, 117, 0.8));
}

.presence {
  min-height: 88px;
  border-radius: 22px 34px 22px 34px;
  background:
    radial-gradient(ellipse at 12% 0%, rgba(255, 255, 255, 0.9), transparent 42%),
    linear-gradient(145deg, rgba(246, 255, 255, 0.96), rgba(166, 242, 255, 0.94) 40%, rgba(40, 187, 226, 0.96) 100%);
  box-shadow:
    inset 0 2px 0 #fff,
    inset 0 -5px 12px rgba(0, 93, 150, 0.25),
    0 8px 15px rgba(0, 73, 126, 0.22),
    0 1px 3px rgba(255, 255, 255, 0.9);
}

.presence-avatar {
  padding: 3px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  background: linear-gradient(145deg, #ffffff, #74e9ff 35%, #0095e5 72%, #0057b6);
  box-shadow: inset 0 2px 4px #fff, 0 2px 7px rgba(0, 78, 149, 0.45);
}

.presence-avatar > img:first-child {
  border: 2px solid #fff;
  box-shadow: inset 0 0 5px rgba(0, 168, 232, 0.6);
}

.presence-name {
  color: #063d67;
  font-size: 15px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
}

.activity {
  color: #154d70;
  font-size: 12px;
  font-weight: 600;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
}

.status-message {
  border: 1px solid rgba(255, 255, 255, 0.95);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(121, 226, 255, 0.68));
  color: #06436e;
  font-weight: 700;
  box-shadow: inset 0 2px 3px #fff, 0 2px 5px rgba(0, 80, 140, 0.25);
  text-shadow: 0 1px 1px #fff;
}

.spotify {
  height: 96px;
  padding: 6px;
  border-radius: 24px;
  background: linear-gradient(145deg, #fff 0%, #9ff1ff 27%, #15ace2 65%, #0065b2 100%);
  box-shadow: inset 0 3px 5px #fff, inset 0 -5px 12px rgba(0, 64, 133, 0.5), 0 9px 16px rgba(0, 66, 119, 0.3);
}

.spotify[hidden] {
  display: none;
}

.spotify::before {
  z-index: 2;
  inset: 6px 6px auto;
  height: 47%;
  border-radius: 19px 19px 10px 10px;
}

.spotify iframe {
  display: block;
  width: 100%;
  height: 82px;
  border: 1px solid rgba(255, 255, 255, 0.92);
  border-radius: 17px;
  box-shadow: 0 2px 7px rgba(0, 69, 130, 0.45);
}

.toast {
  border: 1px solid #fff;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff, #8cecff 50%, #00a8e8);
  color: #063d67;
  font-weight: 700;
  box-shadow: inset 0 2px 3px #fff, 0 4px 12px rgba(0, 70, 120, 0.35);
}

@keyframes bubble-rise {
  0% { opacity: 0; transform: translate3d(0, 0, 0) scale(0.8); }
  10% { opacity: 0.75; }
  50% { transform: translate3d(30px, -55vh, 0) scale(1); }
  90% { opacity: 0.65; }
  100% { opacity: 0; transform: translate3d(-18px, -115vh, 0) scale(1.08); }
}

@keyframes card-glint {
  0%, 62% { left: -45%; opacity: 0; }
  68% { opacity: 1; }
  84% { left: 125%; opacity: 0.75; }
  100% { left: 125%; opacity: 0; }
}

@keyframes aurora-drift {
  from { transform: translateX(-4%) rotate(-8deg); }
  to { transform: translateX(5%) rotate(-4deg); }
}

@media (max-width: 560px) {
  .page {
    padding: 24px 12px;
  }

  .profile {
    gap: 18px;
  }

  .profile-card {
    min-height: 0;
    border-radius: 36px 22px 36px 22px;
    padding: 28px 22px;
  }

  h1 {
    font-size: 21px;
  }

  .presence {
    gap: 11px;
    border-radius: 18px 26px;
  }

  .spotify {
    height: 94px;
    padding: 5px;
  }

  .spotify iframe {
    height: 82px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bubble,
  .aurora,
  .panel::after {
    animation: none !important;
  }
}

.theme-toggle {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, 0.98);
  border-radius: 999px;
  background: linear-gradient(145deg, #fff 0%, #dcfcff 22%, #79e9ff 54%, #1598dd 100%);
  color: #06436e;
  font: 700 12px/1 "Segoe UI", Tahoma, Arial, sans-serif;
  text-shadow: 0 1px 1px #fff;
  box-shadow:
    inset 0 2px 3px rgba(255, 255, 255, 0.98),
    inset 0 -3px 5px rgba(0, 82, 151, 0.28),
    0 4px 12px rgba(0, 67, 120, 0.32);
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease;
}

.theme-toggle:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 2px 4px #fff, 0 7px 16px rgba(0, 67, 120, 0.36);
}

.theme-toggle:active {
  transform: translateY(1px);
  box-shadow: inset 0 3px 8px rgba(0, 75, 135, 0.35);
}

.theme-orb {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  background: linear-gradient(145deg, #fff9bd 0%, #ffdf53 45%, #ff9e21 100%);
  box-shadow: inset 0 2px 3px #fff, 0 1px 4px rgba(128, 95, 0, 0.45);
}

.theme-orb svg {
  width: 16px;
  height: 16px;
  fill: #fff;
  filter: drop-shadow(0 1px 1px rgba(112, 84, 0, 0.55));
}

.theme-moon {
  display: none;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  color: #e4fbff;
  background: #06152d;
}

:root[data-theme="dark"] body {
  background:
    radial-gradient(ellipse at 15% 7%, rgba(0, 215, 255, 0.55), transparent 30%),
    radial-gradient(ellipse at 88% 15%, rgba(83, 255, 158, 0.24), transparent 29%),
    radial-gradient(ellipse at 55% 92%, rgba(37, 120, 255, 0.5), transparent 35%),
    linear-gradient(155deg, #06152d 0%, #07385b 40%, #075568 68%, #063b53 100%);
}

:root[data-theme="dark"] .aurora {
  background: linear-gradient(100deg, transparent 16%, rgba(0, 207, 255, 0.42) 37%, rgba(57, 255, 20, 0.36) 52%, rgba(74, 140, 255, 0.5) 68%, transparent 84%);
  filter: blur(26px);
  opacity: 0.95;
}

:root[data-theme="dark"] .bubble {
  border-color: rgba(167, 250, 255, 0.85);
  background:
    radial-gradient(ellipse at 30% 23%, rgba(255, 255, 255, 0.98) 0 5%, rgba(179, 250, 255, 0.65) 6% 10%, transparent 22%),
    radial-gradient(ellipse at 72% 75%, rgba(57, 255, 20, 0.4), transparent 47%),
    linear-gradient(140deg, rgba(99, 232, 255, 0.34), rgba(0, 99, 197, 0.28) 48%, rgba(255, 255, 255, 0.32));
  box-shadow: inset 0 0 14px rgba(159, 251, 255, 0.72), 0 0 18px rgba(0, 218, 255, 0.38);
}

:root[data-theme="dark"] .eco-ornaments g[fill="rgba(255,255,255,.5)"] {
  fill: rgba(117, 255, 188, 0.5);
}

:root[data-theme="dark"] .panel {
  border-color: rgba(147, 246, 255, 0.88);
  background: linear-gradient(145deg, rgba(112, 225, 255, 0.9) 0%, rgba(14, 105, 166, 0.95) 25%, rgba(4, 62, 112, 0.97) 59%, rgba(2, 27, 73, 0.98) 100%);
  box-shadow:
    inset 0 2px 0 rgba(238, 255, 255, 0.96),
    inset 0 -9px 20px rgba(0, 7, 45, 0.52),
    0 12px 28px rgba(0, 4, 34, 0.5),
    0 0 18px rgba(0, 220, 255, 0.2);
}

:root[data-theme="dark"] .panel::before {
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.48) 0%, rgba(195, 249, 255, 0.3) 48%, rgba(172, 241, 255, 0.06) 50%, transparent 100%);
}

:root[data-theme="dark"] .panel::after {
  background: linear-gradient(to right, transparent, rgba(220, 255, 255, 0.78), transparent);
}

:root[data-theme="dark"] .profile-card {
  background:
    radial-gradient(ellipse at 0 0, rgba(154, 248, 255, 0.56), transparent 47%),
    linear-gradient(145deg, rgba(98, 210, 255, 0.88) 0%, rgba(4, 105, 174, 0.94) 25%, rgba(4, 57, 125, 0.96) 59%, rgba(2, 23, 70, 0.98) 100%);
}

:root[data-theme="dark"] .avatar {
  box-shadow: 0 0 0 3px rgba(57, 255, 20, 0.7), 0 0 17px rgba(0, 231, 255, 0.72);
}

:root[data-theme="dark"] h1,
:root[data-theme="dark"] .bio,
:root[data-theme="dark"] .detail,
:root[data-theme="dark"] .presence-name,
:root[data-theme="dark"] .activity,
:root[data-theme="dark"] .status-message {
  color: #f1fdff;
  text-shadow: 0 1px 2px rgba(0, 17, 52, 0.9), 0 0 8px rgba(91, 237, 255, 0.36);
}

:root[data-theme="dark"] .detail svg {
  color: #aeff41;
  filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 8px rgba(57, 255, 20, 0.85));
}

:root[data-theme="dark"] .social {
  background: linear-gradient(145deg, #f8ffff 0%, #8cfcff 22%, #00a8e8 54%, #0645b6 100%);
  box-shadow:
    inset 0 3px 4px #fff,
    inset 0 -3px 5px rgba(0, 13, 75, 0.72),
    0 3px 9px rgba(0, 1, 37, 0.65),
    0 0 14px rgba(0, 225, 255, 0.62);
}

:root[data-theme="dark"] .social:hover {
  box-shadow: inset 0 2px 8px rgba(0, 23, 84, 0.7), 0 0 13px rgba(147, 255, 255, 0.8);
}

:root[data-theme="dark"] .presence {
  background:
    radial-gradient(ellipse at 12% 0%, rgba(193, 255, 255, 0.58), transparent 42%),
    linear-gradient(145deg, rgba(30, 145, 200, 0.96), rgba(5, 79, 135, 0.97) 45%, rgba(3, 39, 91, 0.98) 100%);
}

:root[data-theme="dark"] .presence-avatar {
  background: linear-gradient(145deg, #fff, #74fff0 27%, #00a8e8 60%, #0741ad);
  box-shadow: inset 0 2px 4px #fff, 0 0 12px rgba(57, 255, 20, 0.62), 0 2px 8px rgba(0, 10, 55, 0.75);
}

:root[data-theme="dark"] .status-message {
  border-color: rgba(193, 255, 255, 0.9);
  background: linear-gradient(180deg, rgba(152, 252, 255, 0.62), rgba(0, 104, 185, 0.78));
  box-shadow: inset 0 2px 3px rgba(255, 255, 255, 0.94), 0 2px 7px rgba(0, 5, 49, 0.5);
}

:root[data-theme="dark"] .spotify {
  background: linear-gradient(145deg, #efffff 0%, #53ddf7 25%, #0874c1 62%, #071d69 100%);
  box-shadow: inset 0 3px 5px #fff, inset 0 -5px 12px rgba(0, 5, 65, 0.72), 0 9px 19px rgba(0, 2, 43, 0.62), 0 0 16px rgba(0, 221, 255, 0.35);
}

:root[data-theme="dark"] .spotify iframe {
  border-color: rgba(193, 255, 255, 0.9);
  box-shadow: 0 2px 9px rgba(0, 5, 46, 0.76);
}

:root[data-theme="dark"] .theme-toggle {
  border-color: rgba(172, 255, 242, 0.98);
  background: linear-gradient(145deg, #e7ffff 0%, #83e9ff 24%, #147ec6 61%, #102d83 100%);
  color: #f2ffff;
  text-shadow: 0 1px 2px rgba(0, 23, 71, 0.9);
  box-shadow: inset 0 2px 3px rgba(255, 255, 255, 0.9), inset 0 -3px 5px rgba(0, 7, 62, 0.55), 0 4px 14px rgba(0, 2, 39, 0.65), 0 0 15px rgba(0, 227, 255, 0.34);
}

:root[data-theme="dark"] .theme-orb {
  background: linear-gradient(145deg, #e5ffff 0%, #82f5ff 38%, #09b5e7 75%, #3168df 100%);
  box-shadow: inset 0 2px 3px #fff, 0 0 9px rgba(104, 249, 255, 0.8);
}

:root[data-theme="dark"] .theme-sun {
  display: none;
}

:root[data-theme="dark"] .theme-moon {
  display: block;
}

:root[data-theme="dark"] .toast {
  border-color: rgba(179, 255, 255, 0.96);
  background: linear-gradient(145deg, #eaffff, #36cee9 50%, #086eb8);
  color: #03294f;
  box-shadow: inset 0 2px 3px #fff, 0 4px 15px rgba(0, 2, 42, 0.65), 0 0 14px rgba(0, 226, 255, 0.35);
}

@media (max-width: 560px) {
  .theme-toggle {
    top: 12px;
    right: 12px;
    min-height: 40px;
  }
}

:root:not([data-theme="dark"]) body {
  background:
    radial-gradient(ellipse at 17% 12%, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.48) 9%, transparent 28%),
    radial-gradient(ellipse at 85% 17%, rgba(57, 255, 20, 0.48), transparent 29%),
    radial-gradient(ellipse at 29% 79%, rgba(176, 255, 111, 0.55), transparent 34%),
    radial-gradient(ellipse at 70% 63%, rgba(102, 248, 197, 0.4), transparent 32%),
    linear-gradient(155deg, #c9fff4 0%, #6ff2d2 35%, #18cfb2 65%, #74e84c 100%);
}

:root:not([data-theme="dark"]) .aurora {
  background: linear-gradient(100deg, transparent 12%, rgba(255, 255, 255, 0.52) 32%, rgba(57, 255, 20, 0.43) 49%, rgba(95, 255, 214, 0.53) 65%, transparent 86%);
}

:root:not([data-theme="dark"]) .profile-card {
  background:
    radial-gradient(ellipse at 0 0, rgba(255, 255, 255, 0.88), transparent 47%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.94) 0%, rgba(226, 255, 220, 0.97) 22%, rgba(90, 230, 174, 0.96) 52%, rgba(0, 153, 165, 0.97) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.98),
    inset 0 -8px 18px rgba(0, 104, 107, 0.25),
    0 12px 22px rgba(0, 105, 83, 0.23),
    0 2px 4px rgba(255, 255, 255, 0.85);
}

:root:not([data-theme="dark"]) .presence {
  background:
    radial-gradient(ellipse at 12% 0%, rgba(255, 255, 255, 0.96), transparent 42%),
    linear-gradient(145deg, rgba(250, 255, 237, 0.98), rgba(186, 255, 214, 0.97) 42%, rgba(39, 211, 181, 0.98) 100%);
  box-shadow:
    inset 0 2px 0 #fff,
    inset 0 -5px 12px rgba(0, 116, 107, 0.24),
    0 8px 15px rgba(0, 100, 87, 0.2),
    0 1px 3px rgba(255, 255, 255, 0.95);
}

:root:not([data-theme="dark"]) .social {
  background: linear-gradient(145deg, #fff 0%, #edffd1 20%, #85f65d 50%, #00ae9c 100%);
  box-shadow:
    inset 0 3px 4px rgba(255, 255, 255, 0.98),
    inset 0 -3px 5px rgba(0, 105, 81, 0.48),
    0 3px 7px rgba(0, 100, 77, 0.4),
    0 0 10px rgba(198, 255, 174, 0.9);
}

:root:not([data-theme="dark"]) .spotify {
  background: linear-gradient(145deg, #fff 0%, #d9ffd3 23%, #55e6bb 58%, #008eaa 100%);
  box-shadow: inset 0 3px 5px #fff, inset 0 -5px 12px rgba(0, 93, 99, 0.43), 0 9px 16px rgba(0, 91, 83, 0.28);
}

.fish {
  position: absolute;
  z-index: 2;
  width: clamp(58px, 6vw, 108px);
  aspect-ratio: 2.2 / 1;
  opacity: 0.96;
  filter: drop-shadow(0 4px 7px rgba(0, 76, 105, 0.3));
  pointer-events: none;
  animation: fish-shuttle var(--fish-speed, 40s) linear infinite;
  will-change: transform;
}

.fish svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.fish-one {
  top: 64%;
  left: 0;
  --fish-speed: 52s;
}

.fish-two {
  top: 73%;
  left: 0;
  width: clamp(45px, 4.8vw, 82px);
  --fish-speed: 44s;
  animation-delay: -11s;
}

.fish-three {
  top: 84%;
  left: 0;
  width: clamp(38px, 4vw, 68px);
  --fish-speed: 61s;
  animation-delay: -31s;
  opacity: 0.78;
}

@keyframes fish-shuttle {
  0% { transform: translate3d(-15vw, 0, 0) scaleX(1); }
  12.5% { transform: translate3d(16.25vw, 8px, 0) scaleX(1); }
  25% { transform: translate3d(47.5vw, -6px, 0) scaleX(1); }
  37.5% { transform: translate3d(78.75vw, 7px, 0) scaleX(1); }
  49.5% { transform: translate3d(110vw, 0, 0) scaleX(1); }
  50% { transform: translate3d(110vw, 0, 0) scaleX(-1); }
  62.5% { transform: translate3d(78.75vw, -8px, 0) scaleX(-1); }
  75% { transform: translate3d(47.5vw, 6px, 0) scaleX(-1); }
  87.5% { transform: translate3d(16.25vw, -5px, 0) scaleX(-1); }
  99.5% { transform: translate3d(-15vw, 0, 0) scaleX(-1); }
  100% { transform: translate3d(-15vw, 0, 0) scaleX(1); }
}

:root[data-theme="dark"] .fish {
  filter: drop-shadow(0 2px 3px rgba(0, 29, 54, 0.3));
}

:root[data-theme="dark"] .eco-ornaments .grass {
  fill: rgba(133, 255, 105, 0.6);
}

@media (prefers-reduced-motion: reduce) {
  .fish {
    animation: none !important;
    left: auto;
    right: 8%;
    transform: none;
  }
}

.ecosystem-landscape {
  position: absolute;
  z-index: 3;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.lagoon-backdrop {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.ecosystem-landscape,
.eco-ornaments,
.aurora {
  display: none;
}

.bubble {
  display: none;
}

.water-ripples {
  transform-box: fill-box;
  transform-origin: center;
  animation: water-glide 11s ease-in-out infinite alternate;
}

.status-dot[data-status="online"] { background: #23a55a; }
.status-dot[data-status="idle"] { background: #f0b232; }
.status-dot[data-status="offline"] { background: #80848e; }
.status-dot:not([data-status="dnd"])::after { display: none; }

.listening-label {
  margin: 0 0 -10px 14px;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 3px rgba(0, 45, 80, 0.75), 0 0 8px rgba(0, 45, 80, 0.45);
}

:root[data-theme="dark"] .lagoon-backdrop {
  filter: brightness(0.58) saturate(1.2);
}

:root:not([data-theme="dark"]) .lagoon-backdrop {
  filter: brightness(1.12) saturate(1.1);
}

:root:not([data-theme="dark"]) .panel {
  filter: brightness(0.9) saturate(1.05);
}

:root:not([data-theme="dark"]) body {
  background:
    radial-gradient(ellipse at 16% 8%, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.55) 7%, transparent 23%),
    radial-gradient(ellipse at 77% 5%, rgba(255, 255, 224, 0.7), transparent 23%),
    radial-gradient(ellipse at 85% 24%, rgba(57, 255, 20, 0.5), transparent 27%),
    radial-gradient(ellipse at 22% 76%, rgba(171, 255, 83, 0.55), transparent 34%),
    linear-gradient(180deg, #087bdf 0%, #24b9f1 25%, #8beaf0 43%, #9cf3cb 57%, #41d890 100%);
}

:root:not([data-theme="dark"]) .eco-scene {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0 30%, rgba(255, 255, 255, 0.12) 43%, rgba(129, 255, 217, 0.08) 59%, rgba(0, 137, 103, 0.12) 100%),
    radial-gradient(ellipse at 49% 59%, rgba(255, 255, 255, 0.28), transparent 35%);
}

:root:not([data-theme="dark"]) .profile-card {
  background:
    radial-gradient(ellipse at 0 0, rgba(255, 255, 255, 0.94), transparent 52%),
    linear-gradient(145deg, rgba(252, 255, 238, 0.96) 0%, rgba(216, 255, 216, 0.94) 24%, rgba(119, 232, 188, 0.92) 57%, rgba(31, 168, 155, 0.95) 100%);
}

:root:not([data-theme="dark"]) .presence {
  background:
    radial-gradient(ellipse at 12% 0%, rgba(255, 255, 255, 0.98), transparent 48%),
    linear-gradient(145deg, rgba(250, 255, 236, 0.98), rgba(197, 255, 218, 0.95) 45%, rgba(71, 218, 186, 0.96) 100%);
}

:root:not([data-theme="dark"]) .profile-card {
  background:
    radial-gradient(ellipse at 0 0, rgba(255, 255, 255, 0.91), transparent 47%),
    linear-gradient(145deg, rgba(247, 255, 224, 0.84) 0%, rgba(181, 255, 206, 0.78) 27%, rgba(93, 224, 180, 0.79) 61%, rgba(16, 145, 148, 0.84) 100%);
}

:root:not([data-theme="dark"]) .panel {
  border-color: rgba(255, 255, 255, 0.97);
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.98),
    inset 0 -8px 18px rgba(0, 99, 111, 0.23),
    0 12px 24px rgba(0, 89, 95, 0.2),
    0 0 16px rgba(255, 255, 255, 0.42);
}

:root:not([data-theme="dark"]) .panel::before {
  height: 50%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.4) 46%, rgba(255, 255, 255, 0.12) 50%, transparent 100%);
}

:root:not([data-theme="dark"]) .spotify {
  background: linear-gradient(145deg, #fff 0%, #d6ffdf 22%, #5de5bc 57%, #078fa4 100%);
}

.landscape-glint {
  animation: landscape-glimmer 7s ease-in-out infinite alternate;
}

@keyframes landscape-glimmer {
  from { opacity: 0.28; transform: translateX(-1.5%); }
  to { opacity: 0.75; transform: translateX(1.5%); }
}

:root[data-theme="dark"] .ecosystem-landscape {
  filter: brightness(0.72) saturate(1.15);
}

:root[data-theme="dark"] .water-ripples {
  opacity: 0.72;
}

@keyframes water-glide {
  from { transform: translate3d(-1.5%, -2px, 0) scaleX(1); opacity: 0.64; }
  to { transform: translate3d(1.5%, 3px, 0) scaleX(1.02); opacity: 0.95; }
}

@media (prefers-reduced-motion: reduce) {
  .water-ripples,
  .landscape-glint {
    animation: none !important;
  }
}

/* Final layout pass: these rules intentionally refine the base styles above. */
main.page .profile { width: min(100%, 560px); gap: 16px; }
main.page .panel { border-radius: 28px; }
main.page .profile-card {
  min-height: 0;
  padding: 28px 28px 22px;
  border-radius: 28px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
main.page .identity { align-items: center; gap: 22px; min-height: 0; }
main.page .avatar-wrap { flex: 0 0 96px; width: 96px; height: 96px; }
main.page .name-block { transform: none; gap: 4px; min-width: 0; }
main.page .name-block h1 { font-size: 26px; line-height: 1.15; }
main.page .name-block .bio { margin: 0; font-size: 14px; line-height: 1.3; }
main.page .name-block .details { margin: 6px 0 0; gap: 6px; }
main.page .name-block .detail { min-height: 0; font-size: 13px; gap: 8px; }
main.page .name-block .detail svg { width: 16px; height: 16px; flex-basis: 16px; }
main.page .socials {
  margin: 0;
  padding-top: 18px;
  gap: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
}
main.page .presence { min-height: 0; padding: 14px 16px; gap: 14px; border-radius: 28px; }
main.page .presence-avatar { flex-basis: 64px; width: 64px; height: 64px; }
main.page .presence-name { font-size: 15px; margin: 0 0 3px; }
main.page .activity { font-size: 12px; line-height: 16px; }
main.page .status-message { padding: 6px 14px; }
main.page .listening-label {
  margin: 4px 0 -8px 8px;
  font-size: 13px;
  font-weight: 700;
}
main.page .spotify { border-radius: 28px; }
@media (max-width: 560px) {
  main.page .profile-card { padding: 22px 20px 18px; gap: 18px; }
  main.page .avatar-wrap { flex-basis: 76px; width: 76px; height: 76px; }
  main.page .identity { gap: 18px; }
  main.page .name-block h1 { font-size: 22px; }
  main.page .presence { padding: 12px; gap: 10px; }
  main.page .presence-avatar { flex-basis: 56px; width: 56px; height: 56px; }
}
/* Discord pill nested in the profile card */
main.page .profile-card .presence {
  min-height: 0;
  padding: 8px 12px;
  gap: 10px;
  border-radius: 999px;
  filter: none;
  border-color: rgba(255, 255, 255, 0.85);
  background:
    radial-gradient(ellipse at 15% 0%, rgba(255, 255, 255, 0.7), transparent 50%),
    linear-gradient(145deg, #b8f7a1 0%, #4fd36a 45%, #0e8a3f 100%);
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.9), inset 0 -4px 9px rgba(0, 80, 30, 0.4), 0 4px 10px rgba(0, 60, 40, 0.35);
}
main.page .profile-card .presence::after { display: none; }
main.page .profile-card .presence-avatar { flex-basis: 42px; width: 42px; height: 42px; padding: 3px; background: linear-gradient(145deg, #fff, #9cf08a 40%, #1a9a46); }
main.page .profile-card .status-dot { width: 13px; height: 13px; right: -3px; bottom: -3px; }
main.page .profile-card .status-dot::after { top: 4px; left: 2px; width: 5px; }
main.page .profile-card .presence-name { font-size: 13px; margin: 0; color: #053d1c; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); }
main.page .profile-card .presence-name .badge { width: 11px; height: 11px; }
main.page .profile-card .activity { font-size: 11px; line-height: 14px; color: #064224; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
main.page .profile-card .status-message { padding: 4px 11px; font-size: 11px; color: #05401f; background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(190, 255, 170, 0.7)); }
/* Cursor bubble trail */
.trail-bubble {
  position: fixed;
  z-index: 60;
  left: 0;
  top: 0;
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.95) 0 12%, transparent 26%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.06) 55%, rgba(150, 240, 255, 0.5) 100%);
  border: 1px solid rgba(255, 255, 255, 0.75);
  box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.55), 0 0 6px rgba(120, 230, 255, 0.4);
  animation: trail-float var(--dur, 1100ms) ease-out forwards;
}
@keyframes trail-float {
  0% { opacity: 0.95; transform: translate(var(--x), var(--y)) scale(0.4); }
  100% { opacity: 0; transform: translate(calc(var(--x) + var(--dx)), calc(var(--y) - var(--rise))) scale(1.15); }
}
@media (prefers-reduced-motion: reduce) { .trail-bubble { display: none; } }
/* Easter eggs */
.egg-toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  z-index: 80;
  transform: translate(-50%, 20px);
  padding: 8px 18px;
  border-radius: 999px;
  font: 600 13px/1 system-ui, sans-serif;
  color: #064224;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(190, 255, 220, 0.85));
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 6px 18px rgba(0, 80, 60, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 400ms, transform 400ms;
}
.egg-toast.show { opacity: 1; transform: translate(-50%, 0); }
.egg-hint {
  position: fixed;
  left: 14px;
  bottom: 14px;
  z-index: 80;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.95);
  background:
    radial-gradient(circle at 30% 18%, rgba(255, 255, 255, 0.95), transparent 48%),
    linear-gradient(145deg, rgba(211, 255, 255, 0.9), rgba(68, 196, 245, 0.84) 55%, rgba(17, 124, 205, 0.92));
  box-shadow: inset 0 2px 3px rgba(255, 255, 255, 0.9), inset 0 -3px 5px rgba(0, 70, 144, 0.4), 0 3px 9px rgba(0, 35, 80, 0.45);
  color: #fff;
  cursor: pointer;
  opacity: 0.88;
  transition: opacity 180ms ease, transform 180ms ease, filter 180ms ease, box-shadow 180ms ease;
}
.egg-hint svg { display: block; width: 23px; height: 23px; overflow: visible; filter: drop-shadow(0 1px 1px rgba(0, 63, 116, 0.5)); }
.egg-hint:hover, .egg-hint:focus-visible { opacity: 1; transform: translateY(-2px) scale(1.08); box-shadow: inset 0 2px 4px #fff, 0 6px 14px rgba(0, 55, 100, 0.5); }
.egg-hint:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.feed-toggle { left: 64px; }
.feed-toggle[aria-pressed="false"] { filter: grayscale(0.85) saturate(0.55); opacity: 0.58; }
.feed-toggle svg .food-flake { transition: opacity 180ms ease; }
.feed-toggle[aria-pressed="false"] svg .food-flake { opacity: 0.35; }
.avatar { cursor: pointer; }
html.egg-hue { animation: egg-hue 5s linear; }
@keyframes egg-hue { to { filter: hue-rotate(360deg); } }
.school-fish {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 70;
  pointer-events: none;
  animation: school-swim var(--dur) linear forwards;
}
.school-fish svg { display: block; width: 100%; height: 100%; animation: school-wiggle 600ms ease-in-out infinite alternate; }
@keyframes school-swim {
  from { transform: translate(var(--x0), var(--y)); }
  to { transform: translate(var(--x1), calc(var(--y) + var(--drift))); }
}
@keyframes school-wiggle { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
.avatar.egg-spin { animation: egg-spin 1s cubic-bezier(.3, 1.4, .5, 1); }
@keyframes egg-spin { to { transform: rotate(720deg) scale(1); } }
/* Clickable fish */
main.page { pointer-events: none; }
main.page .profile, .theme-toggle { pointer-events: auto; }
.eco-scene .fish { pointer-events: auto; cursor: pointer; }
.fish svg { transform-origin: 50% 50%; }
.fish.boop svg { animation: fish-boop 700ms ease-out; }
.fish.spin svg { animation: fish-spin 800ms cubic-bezier(.3, 1.4, .5, 1); }
@keyframes fish-boop {
  0% { transform: scale(1) rotate(0); }
  20% { transform: scale(1.35, 0.75) rotate(-8deg); }
  45% { transform: scale(0.85, 1.25) rotate(8deg); }
  70% { transform: scale(1.1, 0.92) rotate(-3deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes fish-spin {
  0% { transform: rotate(0) scale(1); }
  50% { transform: rotate(180deg) scale(1.3); }
  100% { transform: rotate(360deg) scale(1); }
}
.fish-pop {
  position: fixed;
  z-index: 70;
  left: 0;
  top: 0;
  color: #fff;
  font: 800 15px "Segoe UI", Tahoma, sans-serif;
  pointer-events: none;
  text-shadow: 0 1px 3px rgba(0, 60, 100, 0.8), 0 0 8px rgba(120, 230, 255, 0.9);
  white-space: nowrap;
  animation: fish-pop 1400ms ease-out forwards;
}
@keyframes fish-pop {
  0% { opacity: 0; transform: translate(var(--x), var(--y)) scale(0.5); }
  15% { opacity: 1; transform: translate(var(--x), calc(var(--y) - 14px)) scale(1.15); }
  100% { opacity: 0; transform: translate(calc(var(--x) + var(--dx)), calc(var(--y) - 70px)) scale(1); }
}
/* Compact glass audio dock keeps mute and volume controls together. */
.audio-controls {
  position: fixed;
  z-index: 82;
  right: 18px;
  bottom: 18px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 3px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(235, 252, 255, 0.54), rgba(28, 128, 190, 0.42));
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.72), 0 3px 12px rgba(0, 40, 90, 0.34);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.music-toggle {
  display: grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  background: linear-gradient(145deg, #ffffff 0%, #bff7ff 22%, #29c9ff 54%, #0073c6 100%);
  color: #fff;
  cursor: pointer;
  box-shadow: inset 0 2px 3px rgba(255, 255, 255, 0.92), inset 0 -2px 4px rgba(0, 70, 144, 0.45), 0 2px 6px rgba(0, 70, 144, 0.32);
  transition: filter 160ms ease, transform 160ms ease;
}
.music-toggle:hover { filter: brightness(1.12); transform: translateY(-1px); }
.music-toggle:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.music-toggle svg { width: 20px; height: 20px; fill: currentColor; filter: drop-shadow(0 1px 1px rgba(0, 68, 117, 0.8)); }
.music-toggle .wave { display: none; }
.music-toggle[aria-pressed="true"] .wave { display: inline; }
.music-toggle[aria-pressed="true"] .mute { display: none; }
.music-toggle[aria-pressed="false"] { background: linear-gradient(145deg, #ffffff 0%, #d5e9ee 25%, #8fb4c2 60%, #4d7385 100%); }
@keyframes music-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
/* Slim volume slider; the full input height remains easy to tap. */
.volume-slider {
  --fill: 50%;
  display: block;
  flex: 0 1 90px;
  width: 90px;
  min-width: 68px;
  height: 28px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  opacity: 0.94;
  transition: opacity 160ms ease;
}
.volume-slider:hover { opacity: 1; }
.volume-slider:focus-visible { opacity: 1; outline: 2px solid #fff; outline-offset: 1px; border-radius: 999px; }
.volume-slider::-webkit-slider-runnable-track {
  height: 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.75);
  background: linear-gradient(180deg, #bff7ff, #29c9ff 55%, #0073c6) 0 0 / var(--fill) 100% no-repeat, linear-gradient(180deg, rgba(0, 60, 110, 0.45), rgba(120, 200, 230, 0.55));
  box-shadow: inset 0 1px 2px rgba(0, 50, 100, 0.38), 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 5px rgba(120, 230, 255, 0.35);
}
.volume-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 13px;
  height: 13px;
  margin-top: -4px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.95);
  background: radial-gradient(circle at 35% 28%, #fff 0 18%, #bff7ff 38%, #29c9ff 72%, #0073c6);
  box-shadow: inset 0 -1px 2px rgba(0, 70, 144, 0.45), 0 1px 4px rgba(0, 70, 144, 0.5);
  transition: transform 140ms ease;
}
.volume-slider:hover::-webkit-slider-thumb, .volume-slider:focus-visible::-webkit-slider-thumb { transform: scale(1.15); }
.volume-slider::-moz-range-track {
  height: 5px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.75);
  background: linear-gradient(180deg, rgba(0, 60, 110, 0.45), rgba(120, 200, 230, 0.55));
  box-shadow: inset 0 1px 2px rgba(0, 50, 100, 0.38), 0 0 5px rgba(120, 230, 255, 0.35);
}
.volume-slider::-moz-range-progress { height: 5px; border-radius: 999px; background: linear-gradient(180deg, #bff7ff, #29c9ff 55%, #0073c6); }
.volume-slider::-moz-range-thumb {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.95);
  background: radial-gradient(circle at 35% 28%, #fff 0 18%, #bff7ff 38%, #29c9ff 72%, #0073c6);
  box-shadow: inset 0 -1px 2px rgba(0, 70, 144, 0.45), 0 1px 4px rgba(0, 70, 144, 0.5);
}      /* Intro screen */
.intro {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 40%, rgba(22, 78, 120, 0.72), rgba(8, 36, 76, 0.86) 60%, rgba(3, 16, 40, 0.94));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: opacity 700ms ease, visibility 700ms;
}
.intro.hide { opacity: 0; visibility: hidden; pointer-events: none; }
.intro-btn {
  padding: 18px 44px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(190, 235, 255, 0.85), rgba(90, 190, 240, 0.7) 55%, rgba(30, 130, 200, 0.75));
  box-shadow: inset 0 2px 3px rgba(255, 255, 255, 0.7), 0 8px 24px rgba(0, 20, 60, 0.5), 0 0 18px rgba(80, 200, 255, 0.3);
  color: #05507a;
  font: 700 20px/1 system-ui, sans-serif;
  letter-spacing: 0.04em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
  cursor: pointer;
  animation: music-bob 4s ease-in-out infinite;
}
.intro-btn:hover, .intro-btn:focus-visible { filter: brightness(1.08); }
.intro-sub { margin: 14px 0 0; text-align: center; color: #fff; font: 13px system-ui, sans-serif; text-shadow: 0 1px 3px rgba(0, 70, 144, 0.6); }
@media (prefers-reduced-motion: reduce) { .intro, .intro-btn { transition: none; animation: none; } }      /* Time-of-day sky */
.sky-tint { position: absolute; inset: 0; z-index: 5; pointer-events: none; opacity: 0; transition: opacity 1.5s ease, background 1.5s ease; }
html[data-tod="dawn"] .sky-tint { opacity: 1; background: linear-gradient(180deg, rgba(255, 140, 110, 0.3), rgba(255, 190, 140, 0.16) 50%, rgba(255, 215, 175, 0.06)); }
html[data-tod="dusk"] .sky-tint { opacity: 1; background: linear-gradient(180deg, rgba(255, 105, 55, 0.34), rgba(160, 60, 140, 0.26) 50%, rgba(40, 40, 120, 0.22)); }
html[data-theme="dark"][data-tod="night"] .sky-tint { opacity: 0.35; }
:root[data-theme="dark"] .sun-el { display: none; }
html:not([data-theme="dark"]) .sky-tint, html:not([data-theme="dark"]) .sky-stars, html:not([data-theme="dark"]) .sky-moon { opacity: 0 !important; }
html[data-tod="night"] .sky-tint { opacity: 0.7; background: linear-gradient(180deg, rgba(6, 14, 62, 0.62), rgba(5, 12, 48, 0.5) 55%, rgba(4, 10, 40, 0.42)); }
.sky-stars, .sky-moon { position: absolute; opacity: 0; transition: opacity 1.5s ease; }
.sky-stars {
  inset: 0 0 50% 0;
  background:
    radial-gradient(1.5px 1.5px at 8% 14%, #fff, transparent), radial-gradient(1px 1px at 17% 38%, #fff, transparent),
    radial-gradient(2px 2px at 28% 9%, #fff, transparent), radial-gradient(1px 1px at 36% 27%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 47% 16%, #fff, transparent), radial-gradient(1px 1px at 55% 41%, #fff, transparent),
    radial-gradient(2px 2px at 63% 7%, #fff, transparent), radial-gradient(1px 1px at 72% 31%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 86% 20%, #fff, transparent), radial-gradient(1px 1px at 93% 44%, #fff, transparent),
    radial-gradient(1px 1px at 4% 46%, #fff, transparent), radial-gradient(1.5px 1.5px at 41% 45%, #fff, transparent);
  animation: star-twinkle 4s ease-in-out infinite alternate;
}
.sky-moon { right: 17%; top: 11%; width: 64px; height: 64px; border-radius: 50%; background: radial-gradient(circle at 35% 32%, #fff, #e7f1ff 45%, #aac2e8); box-shadow: 0 0 40px rgba(210, 230, 255, 0.7); }
html[data-tod="night"] .sky-stars, html[data-tod="night"] .sky-moon { opacity: 1; }
@keyframes star-twinkle { from { opacity: 0.65; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .sky-stars { animation: none; } }
/* Fish food and poppable bubbles */
.fish-food {
  position: fixed;
  left: -4px;
  top: -4px;
  z-index: 65;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle at 35% 30%, #ffeab0, #f0a030 60%, #b8651a);
  box-shadow: 0 1px 3px rgba(0, 40, 70, 0.4);
  transition: transform 1.6s cubic-bezier(0.3, 0.1, 0.4, 1), opacity 0.2s ease;
}
.fish-food.eaten { opacity: 0; }
.fish.feeding { animation-play-state: paused; transition: translate 1.6s cubic-bezier(0.4, 0, 0.2, 1), scale 0.25s ease; }
.pop-bubble {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 55;
  border-radius: 50%;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background:
    radial-gradient(circle at 30% 26%, rgba(255, 255, 255, 0.9) 0 10%, transparent 24%),
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.05) 55%, rgba(150, 240, 255, 0.35) 100%);
  box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.5), 0 0 8px rgba(120, 230, 255, 0.3);
  animation: pop-rise var(--dur) linear forwards;
}
@keyframes pop-rise {
  0% { opacity: 0; transform: translate(var(--x), var(--y0)) scale(0.7); }
  8% { opacity: 0.85; }
  50% { transform: translate(calc(var(--x) + var(--sway)), calc(var(--y0) - 55vh)) scale(1); }
  100% { opacity: 0.45; transform: translate(var(--x), -80px) scale(1); }
}
.bubbles-underwater .bubble { pointer-events: auto; cursor: pointer; }
.bubbles-underwater .bubble.popped { visibility: hidden; }
/* Optional guestbook panel */
main.page .guestbook h2 { margin: 0; font-size: 13px; letter-spacing: 0.04em; color: #fff; text-shadow: 0 1px 3px rgba(0, 45, 80, 0.7); }
main.page .guestbook { padding: 16px 18px; display: grid; gap: 10px; }
.guestbook-btn { justify-self: start; padding: 8px 18px; border: 1px solid rgba(255, 255, 255, 0.9); border-radius: 999px; background: linear-gradient(180deg, #fff, #bff7ff 55%, #5ccbff); color: #05507a; font: 700 12px system-ui, sans-serif; cursor: pointer; }
.guestbook[hidden] { display: none !important; }
/* Leave room for the fixed top buttons and the bottom music controls */
main.page { padding-top: 72px; padding-bottom: 72px; }
/* Small screens */
@media (max-width: 560px) {
  main.page { padding: 64px 12px 84px; }
  .egg-hint { left: 10px; bottom: 12px; }
  .feed-toggle { left: 58px; }
  .egg-toast { bottom: 64px; max-width: calc(100vw - 32px); text-align: center; line-height: 1.3; white-space: normal; border-radius: 18px; }
  .sky-moon { right: 12%; width: 48px; height: 48px; }
}
/* Mobile polish */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
main.page { grid-template-columns: minmax(0, 1fr); }
main.page .profile, main.page .profile > * { min-width: 0; }
@supports (min-height: 100dvh) {
  body, .page { min-height: 100dvh; }
}
/* Larger touch area without changing the look of the icons */
.social { position: relative; }
.social::before { content: ""; position: absolute; inset: -10px; }
@media (max-width: 560px), (pointer: coarse), (max-height: 480px) and (orientation: landscape) {
  main.page {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-top: calc(64px + env(safe-area-inset-top));
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
  }
  .theme-toggle { top: calc(12px + env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); }
  .audio-controls { right: max(12px, env(safe-area-inset-right)); bottom: calc(12px + env(safe-area-inset-bottom)); }
  .volume-slider { flex-basis: 78px; width: 78px; height: 30px; }
  .egg-hint { left: max(10px, env(safe-area-inset-left)); bottom: calc(12px + env(safe-area-inset-bottom)); }
  main.page .socials { gap: 18px; }
}
@media (max-width: 380px) {
  main.page .profile-card { padding: 18px 14px 14px; gap: 14px; }
  main.page .avatar-wrap { flex-basis: 64px; width: 64px; height: 64px; }
  main.page .identity { gap: 14px; }
  main.page .name-block h1 { font-size: 20px; }
  main.page .name-block .bio { font-size: 12px; }
  main.page .name-block .detail { font-size: 12px; }
  main.page .profile-card .status-message { display: none; }
  main.page .profile-card .presence { padding: 8px 10px; }
}
@media (max-width: 560px), (pointer: coarse), (max-height: 480px) and (orientation: landscape) {
  body { background-attachment: scroll; }
  .music-toggle { flex-basis: 44px; width: 44px; height: 44px; }
  .volume-slider { height: 44px; }
  .egg-hint { width: 44px; height: 44px; }
  .egg-hint.feed-toggle {
    left: calc(max(10px, env(safe-area-inset-left)) + 52px);
  }
}
@media (hover: none) {
  .social:hover { transform: none; animation: none; }
  .avatar:hover { animation: none; }
}
/* Short landscape phones */
@media (max-height: 480px) and (orientation: landscape) {
  main.page {
    padding-top: calc(64px + env(safe-area-inset-top));
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
  }
}
/* Cute interaction animations (individual transform properties, so they never fight existing transforms) */
html.anim-ready:not(.entered) .profile > * { opacity: 0; }
html.entered .profile > * { animation: cute-in 650ms cubic-bezier(0.34, 1.56, 0.64, 1) backwards; }
html.entered .profile > *:nth-child(2) { animation-delay: 90ms; }
html.entered .profile > *:nth-child(3) { animation-delay: 180ms; }
html.entered .profile > *:nth-child(4) { animation-delay: 270ms; }
html.entered .profile > *:nth-child(5) { animation-delay: 360ms; }
@keyframes cute-in { from { opacity: 0; translate: 0 26px; scale: 0.92; } to { opacity: 1; translate: 0 0; scale: 1; } }
.social:hover { animation: cute-jelly 600ms ease-out; }
@keyframes cute-jelly {
  0%, 100% { scale: 1 1; }
  30% { scale: 1.18 0.86; }
  50% { scale: 0.92 1.1; }
  70% { scale: 1.06 0.97; }
}
.avatar:hover { animation: cute-wiggle 700ms ease-in-out; }
@keyframes cute-wiggle { 0%, 100% { rotate: 0deg; } 20% { rotate: -7deg; } 45% { rotate: 6deg; } 70% { rotate: -3deg; } }
.avatar.hop { animation: cute-hop 600ms cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes cute-hop { 0% { translate: 0 0; scale: 1 1; } 25% { translate: 0 0; scale: 1.1 0.88; } 55% { translate: 0 -16px; scale: 0.94 1.08; } 100% { translate: 0 0; scale: 1 1; } }
.avatar.egg-spin, .avatar.egg-spin:hover, .avatar.egg-spin.hop { animation: egg-spin 1s cubic-bezier(0.3, 1.4, 0.5, 1); }
.theme-orb.spin { animation: cute-spin 700ms cubic-bezier(0.34, 1.3, 0.64, 1); }
@keyframes cute-spin { from { rotate: 0deg; scale: 1; } 50% { scale: 1.25; } to { rotate: 360deg; scale: 1; } }
.music-toggle.boop { animation: cute-boop 450ms ease-out; }
@keyframes cute-boop { 0%, 100% { scale: 1; } 35% { scale: 1.22; } 65% { scale: 0.94; } }
.cute-float {
  position: fixed;
  z-index: 150;
  left: 0;
  top: 0;
  pointer-events: none;
  font-size: 18px;
  line-height: 1;
  animation: cute-float var(--dur, 1100ms) ease-out forwards;
}
@keyframes cute-float {
  0% { opacity: 0; translate: 0 0; scale: 0.4; }
  15% { opacity: 1; scale: 1.1; }
  100% { opacity: 0; translate: var(--dx, 0px) -70px; scale: 0.8; }
}
@media (prefers-reduced-motion: reduce) {
  html.anim-ready:not(.entered) .profile > * { opacity: 1; }
  html.entered .profile > *, .social:hover, .avatar:hover, .avatar.hop, .theme-orb.spin, .music-toggle.boop, .cute-float { animation: none; }
}
