/* Page-level styles shared by every scenofy.com page (the design system lives in scenofy.css). */
html{scroll-padding-top:96px}
body{margin:0;background:#111113;color:#FAFAFB}
a{color:var(--text-link)}
a:hover{color:var(--text-link-hover)}
[hidden]{display:none!important}

/* Sticky glass header. Without JS it stays glass so text never scrolls under a transparent bar;
   site.js adds .is-top while the page is at the very top. */
.site-header{position:sticky;top:0;z-index:100;background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 -1px 0 var(--border-subtle);transition:background-color 280ms cubic-bezier(.2,0,0,1),box-shadow 280ms cubic-bezier(.2,0,0,1)}
.site-header.is-top{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}

.foot-link{color:var(--text-secondary)}
.foot-link:hover,.foot-link[aria-current="page"]{color:var(--text-primary)}

/* Waitlist form message row: one hint and one error part, toggled by site.js. */
.form-msg{display:flex;align-items:center;gap:8px}
/* Spam trap field: off-screen rather than display:none, since simple bots skip hidden inputs. */
.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
[data-done]:focus{outline:none}

@media (max-width:719.98px){.wide-only{display:none!important}}
