/*! Adapted from CREST, GLYPH and SCRY — © 2026 Hasib (OVERSHOOT). All rights reserved. Commercial end-product integration. */
/* CREST: a single liquid surface, spring-driven beneath real navigation links. */
.primary-nav.crest-nav{position:relative;isolation:isolate;gap:2px;padding:0 9px;background:#141c1e;border:1px solid #2b3739;border-radius:999px;height:52px}
.crest-nav>a{z-index:1;display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;font-size:14px;border-radius:999px;white-space:nowrap}
.crest-nav>a[aria-current=page]:after{display:none}
.crest-nav>a:hover,.crest-nav>a:focus-visible{color:#fff}
.crest-nav>a:focus-visible{outline-offset:0}
.crest-liquid{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:-1}
.crest-liquid path,.crest-liquid circle{fill:var(--accent);stroke:none}
.crest-nav:not([data-crest-visible]) .crest-liquid{opacity:0}
.site-nav{gap:24px}
/* GLYPH: per-letter mass, squash and directional stagger; word wraps remain natural. */
.glyph-label{display:inline}.glyph-word{display:inline-block;white-space:nowrap}
.glyph-letter{display:inline-block;transform-origin:50% 100%}
.glyph-button.is-go .glyph-letter{will-change:transform;animation:ilumax-glyph-jump 650ms both;animation-delay:calc(24ms * (var(--i) + var(--rev,0) * (var(--n) - 1 - 2 * var(--i))))}
@keyframes ilumax-glyph-jump{
 0%{transform:translateY(0) scaleY(1);animation-timing-function:cubic-bezier(.4,0,.7,1)}
 13%{transform:translateY(.085em) scaleY(.84);animation-timing-function:cubic-bezier(.08,.82,.3,1)}
 45%{transform:translateY(-.46em) scaleY(1.09);animation-timing-function:cubic-bezier(.5,0,.88,.62)}
 66%{transform:translateY(0) scaleY(.9);animation-timing-function:cubic-bezier(.2,.72,.4,1)}
 80%{transform:translateY(-.115em) scaleY(1.03);animation-timing-function:cubic-bezier(.5,0,.9,.7)}
 92%{transform:translateY(0) scaleY(.975)}100%{transform:translateY(0) scaleY(1)}
}
/* SCRY: its seat stays full width while the field rotates and the control travels. */
.search-box.scry-search{--h:52px;--d:44px;--inset:4px;position:relative;display:block;flex:0 0 300px;width:300px;max-width:100%;height:var(--h);padding:0;border:0;background:none;perspective:660px;border-radius:999px}
.scry-field{position:absolute;inset:0;display:flex;align-items:center;border:1px solid #526361;background:#111a1c;border-radius:999px;transform:rotateX(0);transform-origin:50% 50%;transition:transform .633s cubic-bezier(.55,.08,.4,.95),opacity .25s}
.search-box.scry-search input{display:block;width:100%;min-width:0;height:100%;padding:0 58px 0 20px;border:0;outline:0;background:transparent;color:var(--ink);font-size:15px;border-radius:inherit}
.scry-field:focus-within{outline:2px solid var(--cyan);outline-offset:3px}
.scry-search input::-webkit-search-cancel-button{display:none}
.scry-toggle{position:absolute;right:var(--inset);top:var(--inset);width:var(--d);height:var(--d);border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);transition:transform .633s cubic-bezier(.55,.08,.4,.95);z-index:2}
.scry-toggle svg{width:18px;height:18px;color:inherit;transition:transform .35s}
.scry-search[data-open=false] .scry-field{transform:rotateX(90deg);opacity:0;transition-duration:.567s}
.scry-search[data-open=false] .scry-toggle{transform:translateX(calc(-150px + 26px))}
.scry-hint{position:absolute;inset:0 auto 0 0;display:flex;align-items:center;pointer-events:none;font-size:14px;color:var(--muted);opacity:0;transition:opacity .2s}
.scry-search[data-open=false] .scry-hint{opacity:1}
.scry-search[data-open=false] .scry-toggle:hover svg{transform:scale(1.2)}
.filter-bar{align-items:center}
.motion-off .glyph-button.is-go .glyph-letter{animation:none}
.motion-off .scry-field,.motion-off .scry-toggle,.motion-off .scry-hint{transition:none}
@media(max-width:1200px){.crest-nav>a{padding-inline:10px}.primary-nav.crest-nav{padding-inline:6px}.site-nav{gap:18px}}
@media(max-width:800px){.primary-nav.crest-nav{display:none}}
@media(max-width:700px){.search-box.scry-search{flex-basis:auto;width:100%;--d:44px;--inset:4px}.scry-search[data-open=false] .scry-toggle{transform:translateX(calc(-50cqw + 26px))}.scry-search{container-type:inline-size}}
@media(prefers-reduced-motion:reduce){.glyph-button.is-go .glyph-letter{animation:none}.scry-field,.scry-toggle,.scry-hint{transition:none}}
