/* Shared by all sample sites. No inline styles (strict CSP). */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;-webkit-font-smoothing:antialiased;line-height:1.6}
img,svg{max-width:100%;display:block}
a{color:inherit}
.container{width:min(1160px,100% - 2rem);margin-inline:auto}
.demobar{background:#14120f;color:#e9e4d6;font:500 .8rem/1.4 system-ui,sans-serif;padding:.55rem 1rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;position:relative;z-index:200}
.demobar a{color:#ffb199;margin-left:1rem;text-decoration:none;font-weight:600}
.demobar a:hover{text-decoration:underline}
.dnav-toggle{display:none;background:none;border:1px solid currentColor;color:inherit;border-radius:8px;padding:.4rem .8rem;font:inherit;cursor:pointer}
.skip{position:absolute;left:-999px;background:#000;color:#fff;padding:.6rem 1rem;z-index:300}.skip:focus{left:1rem;top:3rem}
:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.demo-msg{margin-top:1rem;padding:.9rem 1.1rem;border-radius:10px;background:rgba(0,0,0,.08);font-weight:600}
.grid{display:grid;gap:1.4rem}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
input,select,textarea{font:inherit;width:100%;padding:.8rem .9rem;border-radius:10px;border:1.5px solid #bbb;background:#fff;color:#111;min-height:46px}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.3rem}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
