
:root {
  
  --ui-shadow-contact: 0 1px 3px rgba(0, 0, 0, 0.18);
  --ui-shadow-ambient: 0 2px 16px rgba(0, 0, 0, 0.1);
  --ui-shadow: var(--ui-shadow-ambient), var(--ui-shadow-contact);
  --ui-shadow-hover: var(--ui-shadow-contact), 0 16px 40px rgba(0, 0, 0, 0.16);
  
  --ui-hover-dur: 180ms;
  --ui-hover-lift: -3px;
  --ui-ease: cubic-bezier(0.22, 1, 0.36, 1); 
  --ui-ease-std: cubic-bezier(0.4, 0, 0.2, 1);
  --ui-radius: 14px;
  --ui-hairline: rgba(0, 0, 0, 0.08);
  --ui-measure: 68ch;
}
.u-nums {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}
.u-measure {
  max-width: var(--ui-measure);
}
.u-hover-lift {
  transition:
    transform var(--ui-hover-dur) var(--ui-ease),
    box-shadow var(--ui-hover-dur) var(--ui-ease),
    border-color var(--ui-hover-dur) var(--ui-ease);
}
.u-hover-lift:hover {
  transform: translateY(var(--ui-hover-lift));
  box-shadow: var(--ui-shadow-hover);
}
.u-img {
  position: relative;
  border-radius: var(--ui-radius);
  overflow: hidden;
  border: 1px solid var(--ui-hairline);
}
.u-img::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  pointer-events: none;
}
.u-img-zoom img {
  transition: transform 600ms var(--ui-ease);
  will-change: transform;
}
.u-img-zoom:hover img {
  transform: scale(1.04);
}
.u-mesh {
  background-image:
    radial-gradient(60% 50% at 18% 12%, var(--ui-mesh-tint, rgba(255, 255, 255, 0.05)), transparent 60%),
    radial-gradient(50% 45% at 85% 22%, rgba(255, 255, 255, 0.03), transparent 55%),
    radial-gradient(55% 60% at 50% 100%, rgba(0, 0, 0, 0.28), transparent 62%);
}
.u-lum-border {
  border: 1px solid transparent;
  background:
    linear-gradient(var(--ui-card, #fff), var(--ui-card, #fff)) padding-box,
    linear-gradient(
        135deg,
        var(--ui-accent-border, rgba(0, 0, 0, 0.22)),
        rgba(255, 255, 255, 0.06) 45%,
        var(--ui-accent-border, rgba(0, 0, 0, 0.22))
      )
      border-box;
}
.u-rule {
  display: block;
  width: 40px;
  height: 2px;
  background: var(--ui-accent-grad, var(--brand-accent, currentColor));
  border-radius: 2px;
}
::selection {
  background: var(--brand-accent, #b8905a);
  color: var(--brand-accent-fg, #fff);
}
:where(h1, h2, h3, h4) {
  text-wrap: balance;
}
:where(p, li) {
  text-wrap: pretty;
}
::view-transition-old(root) {
  animation: mv-vt-out 140ms cubic-bezier(0.4, 0, 1, 1) both;
}
::view-transition-new(root) {
  animation: mv-vt-in 260ms var(--ui-ease) both;
}
@keyframes mv-vt-out {
  to { opacity: 0; }
}
@keyframes mv-vt-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .u-hover-lift,
  .u-img-zoom img {
    transition: none;
  }
  .u-hover-lift:hover {
    transform: none;
  }
  .u-img-zoom:hover img {
    transform: none;
  }
}
