/*
 * Built-in profile presets. Every decorative motif is CSS-generated.
 * A generated, same-origin profile stylesheet may override only the
 * documented custom properties.
 */

.theme-modern-minimal,
.theme-preview--modern-minimal {
  --theme-bg: #f4f7fb;
  --theme-bg-gradient: radial-gradient(circle at 15% 5%, #e4ecff 0, transparent 30rem);
  --theme-text: #14213d;
  --theme-text-muted: #4a5872;
  --theme-accent: #275ddb;
  --theme-focus: #0b57d0;
  --theme-surface: #ffffff;
  --theme-surface-hover: #f8faff;
  --theme-border: #d9e1ec;
  --theme-avatar-border: #ffffff;
  --theme-tile-radius: 1.125rem;
  --theme-tile-shadow: 0 0.5rem 1.5rem rgb(20 33 61 / 0.1);
  --theme-splash-button-bg: #275ddb;
  --theme-splash-button-text: #ffffff;
  --theme-lock-bg: #f4f7fb;
  --theme-lock-surface: #ffffff;
  --theme-lock-text: #14213d;
}

.theme-neon-night,
.theme-preview--neon-night {
  color-scheme: dark;
  --theme-bg: #070814;
  --theme-bg-gradient:
    radial-gradient(circle at 20% 10%, rgb(87 61 190 / 0.45), transparent 30rem),
    radial-gradient(circle at 85% 75%, rgb(30 164 153 / 0.28), transparent 28rem),
    linear-gradient(150deg, #0b0d20, #070814 58%, #04050b);
  --theme-text: #f7f7ff;
  --theme-text-muted: #c7c9e8;
  --theme-accent: #32e6d2;
  --theme-focus: #f5d90a;
  --theme-surface: #15152b;
  --theme-surface-hover: #1d2040;
  --theme-border: #5854d6;
  --theme-avatar-border: #32e6d2;
  --theme-tile-radius: 1rem;
  --theme-tile-shadow: 0 0.55rem 1.8rem rgb(50 230 210 / 0.14);
  --theme-hover-transform: translateY(-2px) scale(1.005);
  --theme-splash-button-bg: #32e6d2;
  --theme-splash-button-text: #051512;
  --theme-lock-bg: #070814;
  --theme-lock-surface: #15152b;
  --theme-lock-text: #f7f7ff;
}

.theme-neon-night .public-background::before,
.pattern-orbits .public-background::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgb(255 255 255 / 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 0.035) 1px, transparent 1px);
  background-size: 2.5rem 2.5rem;
  content: "";
  mask-image: linear-gradient(to bottom, #000, transparent 85%);
}

.theme-neon-night .profile-link:focus-visible {
  box-shadow: 0 0 0 0.35rem rgb(245 217 10 / 0.2);
}

.theme-rally-stage,
.theme-preview--rally-stage {
  color-scheme: dark;
  --theme-bg: #111315;
  --theme-bg-gradient:
    linear-gradient(118deg, transparent 0 42%, rgb(255 98 74 / 0.16) 42% 43%, transparent 43% 100%),
    linear-gradient(160deg, #25292d, #111315 42%, #08090a);
  --theme-text: #fafaf7;
  --theme-text-muted: #c8c9c5;
  --theme-accent: #ff624a;
  --theme-focus: #ffd84a;
  --theme-surface: #202326;
  --theme-surface-hover: #2a2e32;
  --theme-border: #5b6064;
  --theme-font-heading: "Arial Narrow", "Aptos Narrow", system-ui, sans-serif;
  --theme-title-size: clamp(2.2rem, 7vw, 4rem);
  --theme-avatar-border: #ff624a;
  --theme-tile-radius: 0.625rem;
  --theme-tile-shadow: 0 0.6rem 1.3rem rgb(0 0 0 / 0.32);
  --theme-splash-button-bg: #ff624a;
  --theme-splash-button-text: #1c0906;
  --theme-lock-bg: #111315;
  --theme-lock-surface: #202326;
  --theme-lock-text: #fafaf7;
}

.theme-rally-stage .public-background::before,
.pattern-stage-lines .public-background::before {
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(135deg, transparent 0 2.7rem, rgb(255 255 255 / 0.025) 2.7rem 2.85rem),
    linear-gradient(90deg, transparent 0 10%, rgb(255 98 74 / 0.13) 10% 10.3%, transparent 10.3% 100%);
  content: "";
}

.theme-rally-stage .profile-link {
  border-left: max(0.25rem, var(--theme-tile-border-width)) solid var(--theme-accent);
}

.theme-canadian-wilderness,
.theme-preview--canadian-wilderness {
  color-scheme: dark;
  --theme-bg: #08261f;
  --theme-bg-gradient:
    radial-gradient(ellipse at 50% 115%, #1f5948 0, transparent 50%),
    linear-gradient(180deg, #0f332b, #08261f 60%, #04140f);
  --theme-text: #f4f7ef;
  --theme-text-muted: #c6d8cf;
  --theme-accent: #f0b44d;
  --theme-focus: #ffe18a;
  --theme-surface: #133b31;
  --theme-surface-hover: #194a3e;
  --theme-border: #3c6b5d;
  --theme-font-heading: ui-rounded, "Trebuchet MS", system-ui, sans-serif;
  --theme-avatar-border: #f0b44d;
  --theme-tile-radius: 1.5rem;
  --theme-tile-shadow: 0 0.65rem 1.5rem rgb(0 0 0 / 0.22);
  --theme-splash-button-bg: #f0b44d;
  --theme-splash-button-text: #251702;
  --theme-lock-bg: #08261f;
  --theme-lock-surface: #133b31;
  --theme-lock-text: #f4f7ef;
}

.theme-canadian-wilderness .public-background::before,
.pattern-forest .public-background::before {
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background:
    linear-gradient(150deg, transparent 48%, rgb(4 20 15 / 0.58) 49% 56%, transparent 57%) 0 0 / 5rem 7rem,
    linear-gradient(210deg, transparent 48%, rgb(4 20 15 / 0.58) 49% 56%, transparent 57%) 0 0 / 5rem 7rem;
  content: "";
  opacity: 0.65;
}

.theme-norwegian-fjords,
.theme-preview--norwegian-fjords {
  --theme-bg: #dcecf2;
  --theme-bg-gradient:
    linear-gradient(155deg, transparent 0 40%, rgb(67 117 138 / 0.18) 40.2% 52%, transparent 52.2%),
    linear-gradient(180deg, #e8f4f8, #bdd8e3 65%, #739daf);
  --theme-text: #112f3d;
  --theme-text-muted: #3e5965;
  --theme-accent: #c74839;
  --theme-focus: #005e7a;
  --theme-surface: #f8fcfdee;
  --theme-surface-hover: #ffffff;
  --theme-border: #87a9b6;
  --theme-font-heading: Georgia, "Times New Roman", serif;
  --theme-avatar-border: #f8fcfd;
  --theme-tile-radius: 1.375rem;
  --theme-tile-shadow: 0 0.65rem 1.6rem rgb(17 47 61 / 0.16);
  --theme-splash-button-bg: #a9382d;
  --theme-splash-button-text: #ffffff;
  --theme-lock-bg: #dcecf2;
  --theme-lock-surface: #f8fcfd;
  --theme-lock-text: #112f3d;
}

.theme-norwegian-fjords .public-background::before,
.pattern-fjords .public-background::before {
  position: absolute;
  inset: auto 0 0;
  height: 55%;
  background:
    linear-gradient(145deg, transparent 0 30%, rgb(33 78 95 / 0.22) 30.2% 47%, transparent 47.2%),
    linear-gradient(215deg, transparent 0 42%, rgb(26 65 80 / 0.16) 42.2% 58%, transparent 58.2%);
  content: "";
}

.theme-gaming-rgb,
.theme-preview--gaming-rgb {
  color-scheme: dark;
  --theme-bg: #06070b;
  --theme-bg-gradient:
    radial-gradient(circle at 12% 20%, rgb(45 226 230 / 0.17), transparent 22rem),
    radial-gradient(circle at 88% 70%, rgb(255 60 172 / 0.16), transparent 25rem),
    #06070b;
  --theme-text: #f5f8ff;
  --theme-text-muted: #bfc7d9;
  --theme-accent: #2de2e6;
  --theme-focus: #fff200;
  --theme-surface: #131721;
  --theme-surface-hover: #1b2030;
  --theme-border: #58647f;
  --theme-avatar-border: #2de2e6;
  --theme-tile-radius: 0.875rem;
  --theme-tile-shadow: 0 0.6rem 1.6rem rgb(45 226 230 / 0.12);
  --theme-hover-transform: translateY(-2px) scale(1.008);
  --theme-splash-button-bg: #2de2e6;
  --theme-splash-button-text: #041315;
  --theme-lock-bg: #06070b;
  --theme-lock-surface: #131721;
  --theme-lock-text: #f5f8ff;
}

.theme-gaming-rgb .public-background::before,
.pattern-rgb-rails .public-background::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(118deg, transparent 0 18%, rgb(45 226 230 / 0.1) 18.1% 18.4%, transparent 18.5%),
    linear-gradient(62deg, transparent 0 76%, rgb(255 60 172 / 0.1) 76.1% 76.4%, transparent 76.5%),
    repeating-linear-gradient(0deg, transparent 0 5px, rgb(255 255 255 / 0.018) 6px);
  content: "";
}

.theme-gaming-rgb .profile-link::after {
  position: absolute;
  inset: 0;
  padding: 1px;
  background: linear-gradient(100deg, #2de2e6, transparent 30%, transparent 70%, #ff3cac);
  border-radius: inherit;
  content: "";
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  pointer-events: none;
}

.theme-dark-carbon,
.theme-preview--dark-carbon {
  color-scheme: dark;
  --theme-bg: #101113;
  --theme-bg-gradient:
    repeating-linear-gradient(45deg, rgb(255 255 255 / 0.018) 0 2px, transparent 2px 6px),
    repeating-linear-gradient(-45deg, rgb(255 255 255 / 0.014) 0 2px, transparent 2px 6px),
    #101113;
  --theme-text: #f4f2ee;
  --theme-text-muted: #c7c3ba;
  --theme-accent: #e9a23b;
  --theme-focus: #67d5ff;
  --theme-surface: #1c1e21;
  --theme-surface-hover: #25282c;
  --theme-border: #555960;
  --theme-avatar-border: #e9a23b;
  --theme-tile-radius: 0.5rem;
  --theme-tile-shadow: 0 0.8rem 1.8rem rgb(0 0 0 / 0.34);
  --theme-splash-button-bg: #e9a23b;
  --theme-splash-button-text: #201300;
  --theme-lock-bg: #101113;
  --theme-lock-surface: #1c1e21;
  --theme-lock-text: #f4f2ee;
}

.theme-dark-carbon .profile-link {
  border-top-color: #686c73;
  border-left-color: #686c73;
}

.theme-clean-light,
.theme-preview--clean-light {
  --theme-bg: #ffffff;
  --theme-bg-gradient:
    radial-gradient(circle, rgb(11 107 96 / 0.07) 1px, transparent 1.5px);
  --theme-bg-size: 1.5rem 1.5rem;
  --theme-text: #181a1b;
  --theme-text-muted: #50565a;
  --theme-accent: #0b6b60;
  --theme-focus: #0047ab;
  --theme-surface: #f7f7f4;
  --theme-surface-hover: #eff4f1;
  --theme-border: #cacfce;
  --theme-avatar-border: #ffffff;
  --theme-tile-radius: 0.75rem;
  --theme-tile-shadow: none;
  --theme-splash-button-bg: #0b6b60;
  --theme-splash-button-text: #ffffff;
  --theme-lock-bg: #ffffff;
  --theme-lock-surface: #f7f7f4;
  --theme-lock-text: #181a1b;
}

.theme-clean-light .profile-link {
  border-width: max(1px, var(--theme-tile-border-width));
}

.pattern-none {
  --theme-bg-gradient: none;
}

.pattern-carbon {
  --theme-bg-gradient:
    repeating-linear-gradient(45deg, rgb(255 255 255 / 0.018) 0 2px, transparent 2px 6px),
    repeating-linear-gradient(-45deg, rgb(255 255 255 / 0.014) 0 2px, transparent 2px 6px);
}

.pattern-dots {
  --theme-bg-gradient: radial-gradient(circle, var(--theme-border) 1px, transparent 1.5px);
  --theme-bg-size: 1.5rem 1.5rem;
}

/* Editor preset thumbnails */

.theme-preview--modern-minimal .theme-preset-card__sample {
  background: #f4f7fb;
}
.theme-preview--modern-minimal .theme-preset-card__sample i {
  background: #275ddb;
}

.theme-preview--neon-night .theme-preset-card__sample {
  background: linear-gradient(140deg, #2a2056, #070814);
}
.theme-preview--neon-night .theme-preset-card__sample i {
  background: #32e6d2;
  box-shadow: 0 0 0.5rem #32e6d2;
}

.theme-preview--rally-stage .theme-preset-card__sample {
  background: linear-gradient(120deg, #202326 0 62%, #ff624a 63% 67%, #111315 68%);
}
.theme-preview--rally-stage .theme-preset-card__sample i {
  background: #fafaf7;
  border-left: 0.3rem solid #ff624a;
  border-radius: 0.2rem;
}

.theme-preview--canadian-wilderness .theme-preset-card__sample {
  background: linear-gradient(#174438, #08261f);
}
.theme-preview--canadian-wilderness .theme-preset-card__sample i {
  background: #f0b44d;
}

.theme-preview--norwegian-fjords .theme-preset-card__sample {
  background: linear-gradient(150deg, #e8f4f8 0 55%, #739daf 56%);
}
.theme-preview--norwegian-fjords .theme-preset-card__sample i {
  background: #c74839;
}

.theme-preview--gaming-rgb .theme-preset-card__sample {
  background: linear-gradient(130deg, #06070b, #171b26);
}
.theme-preview--gaming-rgb .theme-preset-card__sample i:nth-child(1) { background: #2de2e6; }
.theme-preview--gaming-rgb .theme-preset-card__sample i:nth-child(2) { background: #ff3cac; }
.theme-preview--gaming-rgb .theme-preset-card__sample i:nth-child(3) { background: #a8ff3e; }

.theme-preview--dark-carbon .theme-preset-card__sample {
  background:
    repeating-linear-gradient(45deg, rgb(255 255 255 / 0.04) 0 2px, transparent 2px 6px),
    #101113;
}
.theme-preview--dark-carbon .theme-preset-card__sample i {
  background: #e9a23b;
}

.theme-preview--clean-light .theme-preset-card__sample {
  background: #ffffff;
  border: 1px solid #cacfce;
}
.theme-preview--clean-light .theme-preset-card__sample i {
  background: #0b6b60;
}

/* Safe lock-page aliases only expose palette-level styling. */

.lock-theme-modern-minimal {
  --theme-lock-bg: #f4f7fb;
  --theme-lock-surface: #ffffff;
  --theme-lock-text: #14213d;
  --theme-text-muted: #4a5872;
  --theme-border: #d9e1ec;
  --theme-focus: #0b57d0;
}

.lock-theme-neon-night,
.lock-theme-gaming-rgb {
  color-scheme: dark;
  --theme-lock-bg: #070814;
  --theme-lock-surface: #15152b;
  --theme-lock-text: #f7f7ff;
  --theme-text-muted: #c7c9e8;
  --theme-border: #5854d6;
  --theme-focus: #f5d90a;
}

.lock-theme-rally-stage,
.lock-theme-dark-carbon {
  color-scheme: dark;
  --theme-lock-bg: #111315;
  --theme-lock-surface: #202326;
  --theme-lock-text: #fafaf7;
  --theme-text-muted: #c8c9c5;
  --theme-border: #5b6064;
  --theme-focus: #ffd84a;
}

.lock-theme-canadian-wilderness {
  color-scheme: dark;
  --theme-lock-bg: #08261f;
  --theme-lock-surface: #133b31;
  --theme-lock-text: #f4f7ef;
  --theme-text-muted: #c6d8cf;
  --theme-border: #3c6b5d;
  --theme-focus: #ffe18a;
}

.lock-theme-norwegian-fjords {
  --theme-lock-bg: #dcecf2;
  --theme-lock-surface: #f8fcfd;
  --theme-lock-text: #112f3d;
  --theme-text-muted: #3e5965;
  --theme-border: #87a9b6;
  --theme-focus: #005e7a;
}

.lock-theme-clean-light {
  --theme-lock-bg: #ffffff;
  --theme-lock-surface: #f7f7f4;
  --theme-lock-text: #181a1b;
  --theme-text-muted: #50565a;
  --theme-border: #cacfce;
  --theme-focus: #0047ab;
}

@media (prefers-reduced-motion: no-preference) {
  .entry-rise-soft .profile-link {
    animation: theme-rise var(--theme-entry-duration) var(--theme-motion-ease) both;
  }

  .entry-fade .profile-link {
    animation: theme-fade var(--theme-entry-duration) var(--theme-motion-ease) both;
  }

  .entry-scale-soft .profile-link {
    animation: theme-scale var(--theme-entry-duration) var(--theme-motion-ease) both;
  }

  .profile-grid > :nth-child(2) { animation-delay: 35ms; }
  .profile-grid > :nth-child(3) { animation-delay: 70ms; }
  .profile-grid > :nth-child(4) { animation-delay: 105ms; }
  .profile-grid > :nth-child(n + 5) { animation-delay: 140ms; }
}

.hover-none .profile-link:hover {
  transform: none;
}

.hover-lift .profile-link:hover {
  transform: translateY(var(--theme-hover-lift));
}

.hover-shift .profile-link:hover {
  transform: translateX(var(--theme-hover-shift));
}

.hover-glow .profile-link:hover {
  box-shadow: 0 0 1.4rem color-mix(in srgb, var(--theme-accent) 28%, transparent);
  transform: translateY(-1px);
}

.shadow-none .profile-link {
  box-shadow: none;
}

.shadow-hard .profile-link {
  box-shadow: 0.35rem 0.35rem 0 color-mix(in srgb, var(--theme-text) 35%, transparent);
}

.shadow-deep .profile-link {
  box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 0.35);
}

.shadow-glow .profile-link {
  box-shadow: 0 0 1.2rem color-mix(in srgb, var(--theme-accent) 25%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .hover-none .profile-link:hover,
  .hover-lift .profile-link:hover,
  .hover-shift .profile-link:hover,
  .hover-glow .profile-link:hover {
    transform: none;
  }
}

@keyframes theme-rise {
  from {
    opacity: 0;
    transform: translateY(0.5rem);
  }
}

@keyframes theme-fade {
  from { opacity: 0; }
}

@keyframes theme-scale {
  from {
    opacity: 0;
    transform: scale(0.985);
  }
}
