/* Site branding; functional colors inherit the selected Gitea theme. */
body { font-family: var(--dm-font); }
#navbar { border-bottom: 1px solid var(--color-secondary); min-height: 64px; padding-inline: 28px; }
#navbar-logo { display: flex; align-items: center; gap: 12px; }
#navbar-logo img { width: 30px; height: 30px; object-fit: contain; }
.dm-wordmark { color: var(--color-text); font-size: 12px; font-weight: 750; letter-spacing: .16em; white-space: nowrap; }
#navbar .item { transition: background-color var(--dm-motion-fast), color var(--dm-motion-fast); }
.ui.button { border-radius: var(--dm-radius); transition: background-color var(--dm-motion-fast), border-color var(--dm-motion-fast); }
:where(a,button,input,textarea,select):focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
/* Branded homepage has its own palette, independent of user workspace theme. */
.dm-home { --color-text: var(--dm-ink); background: var(--dm-bg); color: var(--dm-ink); padding: 0 !important; }
.dm-home a { color: inherit; }
.dm-home :where(h1,h2,h3,p) { margin: 0; }
.dm-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--dm-line); }
.dm-blueprint { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(color-mix(in srgb,var(--dm-line),transparent 65%) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--dm-line),transparent 65%) 1px,transparent 1px); background-size: var(--dm-grid-size) var(--dm-grid-size); mask-image: linear-gradient(90deg,transparent 20%,#000); }
.dm-hero::after { content: ""; position: absolute; pointer-events: none; top: 12%; right: 4%; width: 42%; height: 70%; border-radius: 50%; background: var(--dm-accent); opacity: var(--dm-glow-opacity); filter: blur(120px); }
.dm-hero-inner { position: relative; z-index: 1; max-width: var(--dm-content-width); margin: auto; padding: 64px 56px 60px; display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 32px; min-height: min(760px,calc(100svh - 124px)); }
.dm-copy { position: relative; z-index: 2; animation: dm-enter var(--dm-motion-enter) both; }
.dm-eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--dm-mono); font-size: 10px; font-weight: 500; letter-spacing: .15em; color: var(--dm-muted); }
.dm-line-mark { width: 25px; height: 2px; background: var(--dm-accent); }
.dm-home h1 { margin: 30px 0 22px; font-size: clamp(48px,6.1vw,86px); font-weight: 800; letter-spacing: -.06em; line-height: .98; }
.dm-home h1 > span:not(.dm-title-dot) { color: var(--dm-accent); }
.dm-title-dot { color: var(--dm-ink); }
.dm-tagline { font-size: clamp(21px,2vw,28px); line-height: 1.35; font-weight: 400; letter-spacing: -.025em; }
.dm-home .dm-description { max-width: 365px; margin-top: 18px; color: var(--dm-muted); line-height: 1.7; font-size: 14px; }
.dm-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 32px; }
.dm-action { display: inline-flex; align-items: center; justify-content: space-between; gap: 26px; min-height: 48px; font-size: 13px; font-weight: 650; transition: background-color var(--dm-motion-fast),transform var(--dm-motion-fast); }
.dm-home a.dm-action-primary { background: var(--dm-accent); color: var(--dm-accent-ink); padding: 0 20px; border-radius: var(--dm-radius); }
.dm-action-primary:hover { background: color-mix(in srgb,var(--dm-accent),white 15%) !important; transform: translateY(-2px); }
.dm-action-secondary { border-bottom: 1px solid var(--dm-line); }
.dm-action-secondary:hover { color: var(--dm-accent); }
.dm-action span { font-size: 19px; transition: transform var(--dm-motion-fast); }
.dm-action:hover span { transform: translate(2px,-2px); }
.dm-core { color: var(--dm-accent); min-width: 0; transform: perspective(1000px) rotateY(var(--dm-pointer-x,0deg)) rotateX(var(--dm-pointer-y,0deg)); transition: transform 600ms ease-out; animation: dm-core-enter 1400ms both; }
.dm-core-art { position: relative; aspect-ratio: 1; }
.dm-core-svg { display: block; width: 100%; height: 100%; overflow: visible; }
.dm-core-logo { position: absolute; width: 30%; height: 30%; object-fit: contain; top: 35%; left: 35%; filter: drop-shadow(0 0 24px color-mix(in srgb,var(--dm-accent),transparent 75%)); }
.dm-core-orbit,.dm-core-counter { transform-origin: 320px 320px; }
.dm-core-orbit { animation: dm-orbit var(--dm-orbit-duration) linear infinite; }
.dm-core-counter { animation: dm-orbit var(--dm-orbit-duration) linear infinite reverse; }
.dm-core-topline,.dm-core-bottomline { display: flex; justify-content: space-between; color: var(--dm-muted); font: 9px var(--dm-mono); letter-spacing: .12em; padding-inline: 22px; }
.dm-core-topline { margin-bottom: 12px; }
.dm-core-bottomline { margin-top: 12px; }
.dm-hero-foot { position: relative; z-index: 1; max-width: var(--dm-content-width); padding: 18px 56px; margin: auto; border-top: 1px solid var(--dm-line); display: flex; justify-content: space-between; gap: 24px; color: var(--dm-muted); font: 9px var(--dm-mono); letter-spacing: .12em; }
.dm-hero-foot a { display: inline-flex; gap: 24px; }
.dm-home h2 { font-size: 26px; font-weight: 500; letter-spacing: -.035em; }
.dm-home h3 { margin: 20px 0 12px; font-size: 21px; font-weight: 500; letter-spacing: -.025em; }
.dm-closing { max-width: var(--dm-content-width); margin: auto; padding: 24px 56px 52px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
@keyframes dm-orbit { to { transform: rotate(360deg); } }
@keyframes dm-enter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dm-core-enter { from { opacity: 0; scale: .94; } to { opacity: 1; scale: 1; } }
@media (max-width: 1000px) {
 .dm-hero-inner { padding-inline: 32px; gap: 12px; }
 .dm-hero-foot,.dm-closing { padding-inline: 32px; }
 .dm-actions { gap: 14px; }
 .dm-core-topline,.dm-core-bottomline { font-size: 8px; padding-inline: 5px; }
}
@media (max-width: 767px) {
 #navbar { padding-inline: 12px; }
 .dm-hero-inner { grid-template-columns: 1fr; padding: 44px 24px 24px; gap: 28px; min-height: auto; }
 .dm-home h1 { font-size: clamp(46px,12vw,74px); margin-top: 24px; }
 .dm-core { width: min(100%,400px); margin: auto; }
 .dm-core-art { max-height: 340px; }
 .dm-core-topline,.dm-core-bottomline { font-size: 8px; }
 .dm-hero-foot { padding: 18px 24px; }
 .dm-hero-foot > span { display: none; }
 .dm-closing { padding: 0 24px 36px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
 .dm-home *, .dm-home *::before,.dm-home *::after { animation: none !important; transition: none !important; }
 .dm-core { transform: none !important; }
 #navbar .item,.ui.button { transition: none; }
}

.dm-hero-tools { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.dm-motion-toggle { font: inherit; letter-spacing: inherit; color: inherit; background: transparent; border: 0; padding: 0; min-height: 28px; cursor: pointer; }
.dm-motion-toggle:hover { color: var(--dm-accent); }
.dm-paused .dm-core * { animation-play-state: paused !important; }
.dm-paused .dm-core { transform: none; }
@media (prefers-reduced-motion: reduce) { .dm-motion-toggle { display: none; } }
