/* Brand motion: rendered in Blender, animated only while visible. */
.uv-brand-emblem { position: relative; display: block; width: 100%; aspect-ratio: 1; }
.uv-brand-emblem > img, .uv-brand-emblem > canvas { display: block; width: 100%; height: 100%; object-fit: contain; }
.uv-brand-emblem > canvas { position: absolute; inset: 0; }
.uv-brand-emblem > canvas[hidden] { display: none; }
.uv-brand-emblem.is-ready > img { visibility: hidden; }
/* A continuous ECG sweep, without orbiting particles. Static until visible. */
.uv-heartbeat { position: absolute; z-index: 2; left: 0; bottom: 2%; width: 100%; pointer-events: none; transform: translateX(var(--heartbeat-shift, 0px)); }
.uv-heartbeat svg { display: block; width: 100%; height: auto; overflow: visible; }
.uv-heartbeat path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.uv-heartbeat-grid { stroke: #8ddccc; stroke-width: .6; opacity: .07; }
.uv-heartbeat-base { stroke-width: 2.4; opacity: .42; }
.uv-heartbeat-progress { stroke-width: 2.6; stroke-dasharray: 1000; stroke-dashoffset: calc(1000 - var(--journey-progress, 0) * 1000); opacity: .48; }
.uv-heartbeat-glow, .uv-heartbeat-signal { stroke-dasharray: 185 815; stroke-dashoffset: 1000; animation: uv-heartbeat-sweep 3.2s linear infinite; animation-play-state: paused; }
.uv-heartbeat-glow { stroke-width: 11; opacity: .55; filter: blur(5px); }
.uv-heartbeat-signal { stroke-width: 3.4; filter: drop-shadow(0 0 3px #53eac4); }
.uv-heartbeat.is-active .uv-heartbeat-glow, .uv-heartbeat.is-active .uv-heartbeat-signal { animation-play-state: running; }
@keyframes uv-heartbeat-sweep { from { stroke-dashoffset: 1000; } to { stroke-dashoffset: 0; } }

body.uv-site .uv-page-loader {
  color: #eaf8ff;
  background: radial-gradient(ellipse at 50% 40%, #113f56 0%, #071e38 42%, #06142b 100%);
}
.uv-page-loader-content { gap: 18px; }
.uv-loader-sculpture { position: relative; display: grid; justify-items: center; gap: 12px; width: clamp(190px, 32vw, 270px); }
.uv-loader-sculpture .uv-brand-emblem { width: 86%; margin: -5% auto -8%; filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .25)); animation: uv-sculpture-float 3.36s ease-in-out infinite; }
.uv-loader-sculpture .uv-heartbeat { position: relative; left: auto; bottom: auto; width: 136%; }
.uv-loader-sculpture .uv-heartbeat-base { opacity: .6; }
.uv-loader-sculpture .uv-heartbeat-grid { opacity: .09; }
.uv-loader-ground { position: absolute; inset: auto 30% -3%; height: 10px; border-radius: 50%; background: #17bdac; filter: blur(18px); opacity: .45; }
.uv-loader-wordmark { width: 140px; height: auto; filter: brightness(0) invert(1); }
body.uv-site .uv-page-loader-label { color: #bfd4e1; font-size: 11px; letter-spacing: .24em; }
@keyframes uv-sculpture-float { 50% { transform: translateY(-7px); } }

/* Follow the visible viewport as mobile browser chrome or the keyboard moves. */
@media (max-width: 760px), (hover: none) and (pointer: coarse) {
  body.uv-site .uv-page-loader {
    inset: auto;
    top: var(--uv-loader-top, 0px);
    left: var(--uv-loader-left, 0px);
    width: var(--uv-loader-width, 100%);
    height: 100vh;
    height: var(--uv-loader-height, 100dvh);
    padding: 16px;
    place-content: center;
  }
  .uv-page-loader-content { min-width: 0; }
  .uv-loader-sculpture {
    width: clamp(120px, calc(var(--uv-loader-height, 100dvh) * .28), 190px);
  }
  .uv-loader-wordmark { width: min(140px, 100%); }
}

.uv-brand-journey {
  --journey-progress: 0;
  position: relative;
  color: #eff8fd;
  background: radial-gradient(ellipse at 12% 40%, rgba(18, 107, 116, .28), transparent 52%), #071d34;
  border-block: 1px solid #15374c;
  isolation: isolate;
}
.uv-brand-journey::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .12; background-image: linear-gradient(#76a4b6 1px, transparent 1px), linear-gradient(90deg, #76a4b6 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, #000, transparent 70%); }
.uv-brand-journey-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 7vw, 110px); align-items: start; }
.uv-brand-stage { position: sticky; top: 105px; padding: 54px 0 40px; text-align: center; }
.uv-brand-stage .uv-kicker { color: #75d9c7; font-size: 11px; letter-spacing: .15em; }
body.uv-site .uv-brand-stage h2 { margin: 16px 0 12px; color: #eff8fd; font-size: clamp(26px, 3vw, 42px); line-height: 1.15; }
.uv-brand-sculpture { position: relative; width: min(100%, 420px); margin: auto; aspect-ratio: 1; }
.uv-brand-sculpture::before { content: ''; position: absolute; inset: 18%; background: #177c85; opacity: .23; filter: blur(45px); border-radius: 50%; }
.uv-brand-sculpture .uv-brand-emblem { width: 86%; margin: 0 auto; filter: drop-shadow(0 24px 30px #04101f); }
.uv-brand-sculpture .uv-heartbeat { left: -8%; bottom: 4%; width: 116%; }
.uv-trust-heartbeat { max-width: 480px; border: 1px solid #d8e9ed; border-radius: 32px; background: linear-gradient(145deg, #f6fafc, #e7f4f1); }
.uv-trust-heartbeat .uv-brand-emblem { position: absolute; top: 4%; left: 15%; width: 70%; filter: drop-shadow(0 18px 20px #163d6020); }
.uv-trust-heartbeat .uv-heartbeat { bottom: 8%; }
.uv-trust-heartbeat .uv-heartbeat-grid { stroke: #087a7d; opacity: .13; }
.uv-trust-heartbeat .uv-heartbeat-base { stroke: #178589; opacity: .35; }
.uv-trust-heartbeat .uv-heartbeat-signal { stroke: #008e80; filter: drop-shadow(0 0 3px #20cbb199); }
.uv-trust-heartbeat .uv-heartbeat-glow { opacity: .32; }
.uv-brand-scroll-hint { display: flex; align-items: center; justify-content: center; gap: 12px; color: #9ab8ca; font-size: 11px; letter-spacing: .06em; }
.uv-brand-scroll-hint > span { width: 70px; height: 2px; background: linear-gradient(90deg, #69dbc4 calc(var(--journey-progress) * 100%), #355166 0); }
.uv-brand-scroll-hint b { font-size: 18px; font-weight: 400; }
.uv-brand-story { padding: 50px 0; }
.uv-brand-story article { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 420px; padding: 64px 0 64px 30px; border-left: 1px solid #325066; }
.uv-brand-story article::before { content: ''; position: absolute; top: 50%; left: -4px; width: 7px; height: 7px; background: #547386; border-radius: 50%; transition: background .3s, box-shadow .3s; }
.uv-brand-story article.is-current::before { background: #78efd1; box-shadow: 0 0 0 6px #1c4b53, 0 0 24px #2c9987; }
.uv-brand-step-number { color: #80e0ca; font-size: 11px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
body.uv-site .uv-brand-story h3 { max-width: 440px; margin: 20px 0 18px; color: #f1f7fc; font-size: clamp(26px, 3.2vw, 44px); line-height: 1.2; letter-spacing: -.025em; }
.uv-brand-story p { max-width: 410px; margin: 0 0 22px; color: #b5cad9; font-size: 16px; line-height: 1.8; }
.uv-brand-story-tag { padding: 8px 12px; color: #bbd9e3; border: 1px solid #355466; border-radius: 6px; font-size: 11px; }
.uv-brand-story-link { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; color: #92f0da !important; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 6px; }
.uv-brand-story-link:focus-visible { outline: 2px solid #92f0da; outline-offset: 6px; }

/* Unified notices, including notices replaced by WooCommerce AJAX fragments. */
body.uv-site :is(.uv-feedback, .uv-auth-notice, .uv-license-v2-notice, .uv-dashboard-alert, .wc-block-components-notice-banner) {
  --feedback-ink: #184f71;
  --feedback-line: #c5dce9;
  --feedback-bg: #f0f7fc;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  min-width: 0;
  margin: 0 0 22px !important;
  padding: 20px !important;
  color: var(--feedback-ink) !important;
  background: var(--feedback-bg) !important;
  border: 1px solid var(--feedback-line) !important;
  border-left: 3px solid var(--feedback-ink) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(16, 33, 63, .035);
  font-family: 'Segoe UI', Arial, sans-serif;
  font-size: 14px !important;
  line-height: 1.65;
  text-align: left;
  overflow-wrap: anywhere;
}
body.uv-site :is(.uv-feedback, .uv-auth-notice).is-error,
body.uv-site .uv-license-v2-notice.is-danger { --feedback-ink: #903b44; --feedback-line: #edcdd2; --feedback-bg: #fff5f5; }
body.uv-site :is(.uv-feedback, .uv-auth-notice, .uv-dashboard-alert, .wc-block-components-notice-banner).is-success { --feedback-ink: #17624f; --feedback-line: #bce1d2; --feedback-bg: #f0faf5; }
body.uv-site .wc-block-components-notice-banner.is-error { --feedback-ink: #903b44; --feedback-line: #edcdd2; --feedback-bg: #fff5f5; }
body.uv-site .wc-block-components-notice-banner.is-warning { --feedback-ink: #78531d; --feedback-line: #e6d5b3; --feedback-bg: #fffbf0; }
body.uv-site .wc-block-components-notice-banner > svg { flex-shrink: 0; fill: #fff; background: var(--feedback-ink); }
body.uv-site .wc-block-components-notice-banner__content { min-width: 0; }
body.uv-site .wc-block-components-notice-banner .wc-block-components-button { flex-shrink: 0; }
body.uv-site .uv-dashboard-alert strong { font-size: 15px; }
body.uv-site .uv-dashboard-alert p { font-size: 14px; opacity: 1; }
body.uv-site .uv-feedback.is-session,
body.uv-site .uv-license-v2-notice:not(.is-danger) { --feedback-ink: #78531d; --feedback-line: #e6d5b3; --feedback-bg: #fffbf0; }
body.uv-site .uv-feedback::before, body.uv-site .uv-feedback::after { display: none !important; }
.uv-feedback-icon { display: grid; flex: 0 0 32px; place-items: center; width: 32px; height: 32px; color: var(--feedback-ink); border: 1px solid var(--feedback-line); border-radius: 10px; background: #fff9; }
.uv-feedback-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.uv-feedback-body { flex: 1; min-width: 0; }
body.uv-site .uv-feedback-title { display: block; margin: 0 0 4px; color: var(--feedback-ink); font-size: 15px; font-weight: 750; line-height: 1.4; letter-spacing: 0; }
body.uv-site .uv-feedback-body p { margin: 0; color: inherit; font-size: 14px; line-height: 1.65; }
body.uv-site .uv-feedback-list { display: grid; gap: 8px; padding: 0 !important; margin: 0 !important; list-style: none !important; }
body.uv-site .uv-feedback-list > li { padding: 0 !important; margin: 0 !important; list-style: none !important; }
body.uv-site .uv-feedback-body a:not(.button) { color: inherit; text-decoration: underline; text-underline-offset: 3px; font-weight: 650; }
body.uv-site .uv-feedback-body .button { float: none; display: inline-flex; align-items: center; justify-content: center; margin: 8px 12px 8px 0; max-width: 100%; white-space: normal; line-height: 1.4; }
body.uv-site .uv-auth-notice > span { flex: 0 0 28px; width: 28px; height: 28px; font-size: 13px; }
body.uv-site .uv-auth-notice p { margin: 0; font-size: 14px; line-height: 1.65; }
body.uv-site .uv-license-v2-notice span { font-size: 14px; }
body.uv-site .uv-license-v2-notice button { min-height: 40px; padding: 6px 10px; border-radius: 6px; }
body.uv-site .uv-account-copy-toast { padding: 13px 18px; border-radius: 12px; font-size: 14px; line-height: 1.5; }
body.uv-site .uv-notice { padding: 18px 20px; border-radius: 12px; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
body.uv-site .uv-notice strong { font-size: 15px; line-height: 1.4; }

@media (max-width: 760px) {
  .uv-brand-journey { display: none; }
  body.uv-site :is(.uv-feedback, .uv-auth-notice, .uv-license-v2-notice, .uv-dashboard-alert, .wc-block-components-notice-banner) { padding: 16px !important; gap: 10px; }
  .uv-feedback-icon { flex-basis: 28px; width: 28px; height: 28px; border-radius: 8px; }
}
@media (max-height: 700px) and (min-width: 761px) {
  .uv-brand-stage { top: 88px; padding-top: 24px; }
  .uv-brand-sculpture { width: min(100%, 290px); }
}
@media (prefers-reduced-motion: reduce) {
  .uv-loader-sculpture * { animation: none !important; }
  .uv-heartbeat { transform: none; }
  .uv-heartbeat-glow, .uv-heartbeat-signal { animation: none; stroke-dasharray: none; opacity: .65; }
  .uv-heartbeat-glow { display: none; }
  .uv-brand-story article::before { transition: none; }
  .uv-brand-stage { position: relative; top: auto; }
  .uv-brand-scroll-hint { display: none; }
}
