@import "./tokens.css"; * { box-sizing: border-box; } html, body { margin: 0; padding: 0; height: 100%; background: var(--color-bg); color: var(--color-text-primary); } body { font-family: var(--font-sans); font-size: var(--text-base); line-height: var(--leading-normal); font-weight: 420; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transition: background var(--transition-base), color var(--transition-base); } #root { height: 100%; } h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 600; letter-spacing: -0.01em; line-height: var(--leading-tight); } p { margin: 0; } a { color: inherit; text-decoration: none; } button { font-family: inherit; } input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; outline: none; } input:focus, textarea:focus, select:focus { outline: none; } code, .mono { font-family: var(--font-mono); } ::selection { background: var(--color-accent-soft); color: var(--color-accent-text); } /* Scrollbars */ * { scrollbar-width: thin; scrollbar-color: var(--color-border-strong) transparent; } *::-webkit-scrollbar { width: 10px; height: 10px; } *::-webkit-scrollbar-track { background: transparent; } *::-webkit-scrollbar-thumb { background: var(--color-border-strong); border-radius: var(--radius-full); border: 2px solid var(--color-bg); } /* Keyboard focus only — no focus ring on mouse click */ :focus { outline: none; } :focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-sm); } @media (prefers-reduced-motion: reduce) { *:not(.dw-spinner):not(.dw-spinner *), *:not(.dw-spinner):not(.dw-spinner *)::before, *:not(.dw-spinner):not(.dw-spinner *)::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes slide-in-right { from { transform: translateX(16px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* Shared page-shell utility classes, used across pages/*.jsx */ .dw-page { display: flex; flex-direction: column; gap: var(--space-6); } .dw-page__header h1 { font-size: var(--text-2xl); margin-bottom: var(--space-2); } .dw-page__header p { color: var(--color-text-secondary); font-size: var(--text-sm); } /* Mobile responsive */ @media (max-width: 768px) { .dw-page { gap: var(--space-4); } .dw-page__header h1 { font-size: var(--text-xl); } }