/* ========================================================================== Baseline — reset and element defaults. No component styling below this line. ========================================================================== */ *, *::before, *::after { box-sizing: border-box; } * { margin: 0; } html { color-scheme: dark; -webkit-text-size-adjust: 100%; /* App chrome should not feel like a document. */ -webkit-user-select: none; user-select: none; } body { min-height: 100dvh; background-color: var(--dn-bg-app); color: var(--dn-fg); font-family: var(--dn-font-ui); font-size: var(--dn-text-base); line-height: var(--dn-leading-normal); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow: hidden; /* the editor and sidebar scroll, the shell does not */ } /* Text the user is meant to read or copy opts back in. */ input, textarea, [contenteditable], .selectable { -webkit-user-select: text; user-select: text; } /* --- Typographic elements ------------------------------------------------- */ h1, h2, h3, h4 { font-weight: 600; line-height: var(--dn-leading-tight); text-wrap: balance; } h1 { font-size: var(--dn-text-xl); } h2 { font-size: var(--dn-text-lg); } h3 { font-size: var(--dn-text-md); } h4 { font-size: var(--dn-text-base); } p { text-wrap: pretty; max-width: var(--dn-measure); } small { font-size: var(--dn-text-xs); color: var(--dn-fg-muted); } code, kbd, samp, pre { font-family: var(--dn-font-code); font-size: 0.9375em; } hr { border: 0; border-top: 1px solid var(--dn-border); } a { color: var(--dn-accent); text-decoration-color: var(--dn-accent-muted); text-underline-offset: 2px; transition: color var(--dn-dur-fast) var(--dn-ease); } a:hover { text-decoration-color: currentColor; } /* --- Form and media defaults ---------------------------------------------- */ img, svg, video, canvas { display: block; max-width: 100%; } button, input, select, textarea { font: inherit; color: inherit; } button { background: none; border: 0; padding: 0; cursor: pointer; } :disabled { opacity: 0.5; cursor: not-allowed; } ::placeholder { color: var(--dn-fg-faint); } ::selection { background: var(--dn-accent-muted); color: var(--dn-fg); } /* --- Focus ---------------------------------------------------------------- */ :focus-visible { outline: 2px solid var(--dn-accent); outline-offset: 2px; border-radius: var(--dn-radius-sm); } :focus:not(:focus-visible) { outline: none; } /* --- Scrollbars ------------------------------------------------------------ */ * { scrollbar-width: thin; scrollbar-color: var(--dn-border-strong) transparent; } ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--dn-border); border: 3px solid transparent; background-clip: content-box; border-radius: 999px; } ::-webkit-scrollbar-thumb:hover { background: var(--dn-border-strong); background-clip: content-box; } /* --- Reduced motion --------------------------------------------------------- */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }