@font-face { font-family: Geist; src: url('/assets/fonts/Geist.woff2') format('woff2'); font-display: swap; }
:root { color-scheme: dark; font-family: Geist,system-ui,sans-serif; background: #101116; color: #f5f6fb; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: max(28px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom)); background: radial-gradient(ellipse at 50% 15%,#292c3e 0,transparent 58%),#101116; }
.download-card { width: min(100%,400px); text-align: center; padding: 40px 18px; }
.app-icon { display: block; margin: 0 auto 30px; border-radius: 24px; box-shadow: 0 18px 65px #0005; }
.private-label { font-size: 10px; font-weight: 600; letter-spacing: .2em; color: #b7bece; margin: 0 0 12px; }
h1 { font-size: clamp(36px,9vw,52px); letter-spacing: -.055em; margin: 0 0 36px; font-weight: 650; }
a { color: inherit; text-decoration: none; }
.download-primary { width: 100%; display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; border: 1px solid #ffffffa0; border-radius: 18px; background: #f4f5fa; color: #11131a; padding: 16px 20px; font: 600 15px Geist,system-ui,sans-serif; cursor: pointer; box-shadow: 0 6px 24px #0002; }
.download-primary:hover { background: #fff; }
.download-primary:focus-visible, a:focus-visible { outline: 3px solid #a2baff; outline-offset: 5px; }
.devices { color: #c2c8d5; font-size: 11px; margin: 15px 0 32px; }
.download-tv { display: block; padding: 15px 5px; border-top: 1px solid #ffffff1a; font-size: 12px; color: #c8cfde; line-height: 1.7; }
.download-tv span { margin-left: 8px; }
.install-card h1 { font-size: 40px; margin-bottom: 24px; }
.install-help { font-size: 17px; line-height: 1.7; text-wrap: balance; color: #f2f3fa; }
.install-note { font-size: 12px; line-height: 1.7; color: #bec6d5; margin-top: 20px; }
.back-link { display: inline-block; padding: 14px 20px; margin-top: 12px; color: #b8c1d3; font-size: 12px; }
.access-form { display: grid; gap: 14px; }
.access-form label { color: #c8cfde; font-size: 14px; }
.access-form input[type=password] { width: 100%; min-height: 64px; padding: 12px 18px; border: 1px solid #ffffff35; border-radius: 18px; background: #ffffff08; color: #fff; text-align: center; font: 25px Geist,system-ui,sans-serif; letter-spacing: .4em; }
.access-form input:focus-visible { outline: 3px solid #a2baff; outline-offset: 3px; }
.access-error { margin: 0; color: #ffb9b9; font-size: 13px; line-height: 1.6; }
.access-error:empty { display: none; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }
