.dy {
    --dy-primary: #2563eb;
    --dy-primary-hover: #1d4ed8;
    --dy-primary-soft: #eff6ff;
    --dy-primary-border: #bfdbfe;
    --dy-nav: #0f172a;
    --dy-bg: #f8fafc;
    --dy-surface: #ffffff;
    --dy-text: #111827;
    --dy-muted: #64748b;
    --dy-border: #e2e8f0;
    --dy-danger: #ef4444;
    --dy-success: #16a34a;
    --dy-ai: #7c3aed;
    --dy-ai-soft: #f5f3ff;
    --dy-warning: #ea580c;
    --dy-code: #111827;
    --dy-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
    --dy-ink: var(--dy-text);
    --dy-line: var(--dy-border);
    --dy-card: var(--dy-surface);
    --dy-accent: var(--dy-primary);
    --dy-text-muted: var(--dy-muted);
    --dy-cat-0: #2563eb;
    --dy-cat-1: #7c3aed;
    --dy-cat-2: #0891b2;
    --dy-cat-3: #4f46e5;
    --dy-cat-4: #0d9488;
    --dy-cat-5: #16a34a;
    --dy-cat-6: #ea580c;
    color: var(--dy-text);
    background: var(--dy-bg);
    font-family: Poppins, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.55;
}
html.dy-dark .dy {
    --dy-primary: #3b82f6;
    --dy-primary-hover: #60a5fa;
    --dy-primary-soft: #172033;
    --dy-primary-border: #263244;
    --dy-nav: #0b1120;
    --dy-bg: #0b1120;
    --dy-surface: #111827;
    --dy-text: #f8fafc;
    --dy-muted: #94a3b8;
    --dy-border: #263244;
    --dy-ai: #a78bfa;
    --dy-ai-soft: #1e1b2e;
    --dy-code: #0b1120;
    --dy-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}
.dy *, .dy *::before, .dy *::after { box-sizing: border-box; }
.dy a { color: inherit; }
.dy img { max-width: 100%; height: auto; }
.dy :focus-visible { outline: 2px solid var(--dy-primary); outline-offset: 2px; }
.dy-wrap { width: min(var(--dy-container, 1280px), calc(100% - 32px)); margin: 0 auto; }
.dy-skip { position: absolute; left: -999px; }
.dy-skip:focus { left: 12px; top: 12px; background: var(--dy-surface); color: var(--dy-text); padding: 8px 12px; z-index: 80; }
.dy-page-title { margin: 8px 0; font-size: clamp(1.7rem, 3vw, 2.3rem); letter-spacing: -0.04em; }
.dy-tone-0 { --dy-cat: var(--dy-cat-0); }
.dy-tone-1 { --dy-cat: var(--dy-cat-1); }
.dy-tone-2 { --dy-cat: var(--dy-cat-2); }
.dy-tone-3 { --dy-cat: var(--dy-cat-3); }
.dy-tone-4 { --dy-cat: var(--dy-cat-4); }
.dy-tone-5 { --dy-cat: var(--dy-cat-5); }
.dy-tone-6 { --dy-cat: var(--dy-cat-6); }
@media (max-width: 1023px) {
    .dy-wrap { width: min(var(--dy-container, 1280px), calc(100% - 40px)); }
}
@media (max-width: 720px) {
    .dy-wrap { width: min(var(--dy-container, 1280px), calc(100% - 32px)); }
}
@media (max-width: 359px) {
    .dy-wrap { width: min(var(--dy-container, 1280px), calc(100% - 24px)); }
}
.dy-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
@media (prefers-reduced-motion: reduce) {
    .dy *, .dy *::before, .dy *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
