/* DevBulletin dedicated stylesheet. Do not copy across domains. */
:root{--dv-ink:#101820;--dv-main:#7c3aed;--dv-accent:#f97316;--dv-paper:#f9fafb;--dv-line:color-mix(in srgb,#101820 18%,white);--dv-radius:0;}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--dv-paper);color:var(--dv-ink);font-family:Arial,Helvetica,sans-serif;line-height:1.62} a{color:inherit} img{max-width:100%;display:block} .dv-skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px} .dv-skip:focus{left:8px;z-index:9}
.dv-top{max-width:1160px;margin:0 auto;padding:22px clamp(18px,4vw,46px);display:flex;align-items:center;justify-content:space-between;gap:18px} .dv-brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800} .dv-brand img{width:42px;height:42px} .dv-brand small{display:block;font-weight:500;color:color-mix(in srgb,var(--dv-ink) 62%,white);font-size:12px} .dv-nav{display:flex;gap:18px;align-items:center} .dv-nav a{text-decoration:none;font-size:14px;padding:8px 0;border-bottom:2px solid transparent} .dv-nav a:hover,.dv-nav a[aria-current="page"]{border-color:var(--dv-accent)} .dv-menu{display:none;border:1px solid var(--dv-line);background:#fff;border-radius:var(--dv-radius);padding:9px 11px}
.dv-hero{max-width:1160px;margin:0 auto;padding:54px clamp(18px,4vw,46px) 38px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,70px);align-items:center} .dv-eyebrow{color:var(--dv-main);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:12px} h1{font-size:clamp(38px,7vw,76px);line-height:.98;margin:12px 0 18px;letter-spacing:0} h2{font-size:clamp(26px,4vw,44px);line-height:1.08;margin:0 0 14px} h3{font-size:20px;margin:0 0 8px} p{margin:0 0 14px} .dv-lead{font-size:clamp(18px,2.2vw,23px);max-width:720px} .dv-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px} .dv-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;border-radius:var(--dv-radius);text-decoration:none;border:1px solid var(--dv-main);font-weight:800} .dv-button.primary{background:var(--dv-main);color:white} .dv-button.secondary{background:white;color:var(--dv-ink)} .dv-media{border-radius:var(--dv-radius);overflow:hidden;border:1px solid var(--dv-line);background:#fff;box-shadow:0 24px 60px rgba(15,23,42,.12)}
.dv-band{padding:48px clamp(18px,4vw,46px)} .dv-inner{max-width:1160px;margin:0 auto} .dv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px} .dv-entry{background:#fff;border:1px solid var(--dv-line);border-radius:var(--dv-radius);padding:22px;min-height:210px} .dv-stamp{display:inline-block;color:var(--dv-main);font-weight:800;font-size:12px;margin-bottom:12px} .dv-two{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start} .dv-panel{background:color-mix(in srgb,var(--dv-main) 7%,white);padding:26px;border-radius:var(--dv-radius);border:1px solid var(--dv-line)} .dv-list{padding-left:20px} .dv-list li{margin:8px 0} .dv-footer{border-top:1px solid var(--dv-line);padding:30px clamp(18px,4vw,46px)} .dv-foot-inner{max-width:1160px;margin:0 auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap} .dv-foot-nav{display:flex;gap:14px;flex-wrap:wrap} .dv-legal{max-width:850px;margin:0 auto;padding:54px clamp(18px,4vw,46px)} .dv-legal h1{font-size:clamp(34px,5vw,58px)} .dv-contact-card{background:#fff;border:1px solid var(--dv-line);padding:24px;border-radius:var(--dv-radius)} .dv-entry{background:#0d1117;color:#f8fafc} .dv-entry p,.dv-entry h3{color:#f8fafc}
@media (max-width:820px){.dv-menu{display:inline-flex} .dv-nav{display:none;position:absolute;left:18px;right:18px;top:76px;background:#fff;border:1px solid var(--dv-line);border-radius:var(--dv-radius);padding:14px;flex-direction:column;align-items:stretch;z-index:5} .dv-nav.open{display:flex} .dv-top{position:relative} .dv-hero,.dv-two,.dv-grid{grid-template-columns:1fr} h1{font-size:42px} .dv-band{padding-top:34px;padding-bottom:34px}}


/* DevBulletin uniqueness ledger
terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm | terminal panels, monospace accents, violet commands, orange release tags, dark code cards, engineering bulletin rhythm
release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue | release train, dependency drift, changelog clarity, API migration, test coverage, deprecation window, package exposure, maintainer note, version policy, rollback issue
*/
.dv-domain-boundary{background:linear-gradient(135deg,color-mix(in srgb,var(--dv-main) 10%,white),color-mix(in srgb,var(--dv-accent) 8%,white));}
.dv-domain-boundary h2{max-width:760px}
.dv-domain-boundary p{max-width:900px}
.dv-signature-dv{outline-color:var(--dv-accent);accent-color:var(--dv-main);caret-color:var(--dv-accent);}

.dv-dossier{border-top:3px solid var(--dv-accent);} .dv-dossier li{margin:10px 0;}
