.gate{position:fixed;inset:0;z-index:10000;background:var(--color-bg-deep);display:flex;align-items:center;justify-content:center;pointer-events:all}.gate-inner{text-align:center;user-select:none}.gate-eyebrow{font-family:var(--font-body);font-size:var(--size-eyebrow);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.25em;color:var(--color-accent);margin-bottom:1rem;opacity:0;transform:translateY(16px)}.gate-headline{font-family:var(--font-heading);font-size:var(--size-gate-h1);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:-.02em;line-height:.92;color:var(--color-text-primary);opacity:0;transform:translateY(36px)}.gate-headline .accent{color:var(--color-accent)}.gate-sub{font-family:var(--font-body);font-size:.85rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.15em;margin-top:1.25rem;opacity:0;transform:translateY(16px)}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%)}.cursor-dot{width:10px;height:10px;background:var(--color-accent-light);box-shadow:0 0 8px rgba(82,183,136,.85);z-index:10000;will-change:left,top}.cursor-ring{width:38px;height:38px;border:2px solid rgba(82,183,136,.6);will-change:left,top;transition:width .22s var(--ease-out-expo),height .22s var(--ease-out-expo),border-color .22s ease,background-color .22s ease}.cursor-ring.cursor-hover{width:52px;height:52px;border-color:var(--color-accent-light);background:rgba(82,183,136,.1)}.cursor-ring.cursor-image{width:68px;height:68px;border-color:var(--color-accent-light);background:rgba(82,183,136,.08)}@media not all and (hover:hover) and (pointer:fine){.cursor-dot,.cursor-ring{display:none}}.reveal-up{opacity:0;transform:translateY(40px)}.reveal-left{opacity:0;transform:translateX(-50px)}.reveal-right{opacity:0;transform:translateX(50px)}.hero-body,.hero-breadcrumb,.hero-ctas,.hero-eyebrow,.hero-title-line1,.hero-title-line2{opacity:0;transform:translateY(28px)}body:not(.gate-done){overflow:hidden}.section-eyebrow::after{content:'';display:block;width:0;height:1px;background:var(--color-accent);margin-top:.4rem;transition:width .6s var(--ease-out-expo)}.section-eyebrow.revealed::after{width:2rem}