:root { color-scheme: dark; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif; background: #080a0d; color: #f4f6f7; }
* { box-sizing: border-box; }
body { margin: 0; background: #080a0d; }
header { display: flex; justify-content: space-between; padding: 1rem clamp(1rem, 4vw, 4rem); border-bottom: 1px solid #242a2e; color: #8f9aa1; font-size: .72rem; letter-spacing: .14em; }
header a { color: #f4f6f7; text-decoration: none; }
main { width: min(1440px, calc(100% - 2rem)); margin: auto; padding: clamp(3rem, 7vw, 6rem) 0; }
.hero { max-width: 820px; margin-bottom: 3rem; }
.eyebrow { color: #6dd7ff; font-size: .72rem; letter-spacing: .16em; }
h1 { margin: .4rem 0 1rem; font-size: clamp(2.7rem, 7vw, 6rem); line-height: .95; font-weight: 500; letter-spacing: -.05em; }
#description { color: #a3adb3; font-size: 1.1rem; line-height: 1.6; }
.gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 1rem; }
.item { margin: 0; overflow: hidden; border: 1px solid #2b3338; border-radius: .8rem; background: #101419; }
.item button { width: 100%; padding: 0; border: 0; background: #050607; cursor: zoom-in; }
.item img, .item video { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #f4f4f2; }
.item figcaption { padding: 1rem; color: #b7c0c5; }
.item strong { display: block; color: #f4f6f7; margin-bottom: .3rem; }
.downloads { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #242a2e; }
.downloads h2 { margin: 0 0 1.2rem; color: #8f9aa1; font-size: .72rem; font-weight: 500; letter-spacing: .16em; }
.downloads ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: .6rem 2rem; }
.downloads li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid #1b2126; }
.downloads a { color: #6dd7ff; text-decoration: none; font-size: .95rem; }
.downloads a:hover { text-decoration: underline; }
.downloads span { color: #7d878d; font-size: .78rem; }
dialog { width: min(96vw, 1500px); max-width: none; padding: 0; border: 1px solid #394248; background: #050607; color: #fff; }
dialog::backdrop { background: rgba(0, 0, 0, .88); }
dialog > button { position: absolute; z-index: 2; top: .5rem; right: .7rem; border: 0; background: transparent; color: #fff; font-size: 2rem; cursor: pointer; }
dialog figure { margin: 0; }
dialog img, dialog video { display: block; max-width: 94vw; max-height: 90vh; margin: auto; }
