/* ============================================================
   Dylan Thiart // Portfolio enhancements
   ============================================================ */
#bg-field{position:fixed;inset:0;z-index:0;pointer-events:none}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:rgba(5,6,8,.92);backdrop-filter:blur(16px)}main,.footer{position:relative;z-index:2}#boot-overlay{position:fixed;inset:0;z-index:999;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .45s ease}#boot-overlay.boot-out{opacity:0}body.boot-lock{overflow:hidden}.boot-lines{font:600 .8rem/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent);letter-spacing:.06em}.boot-lines p{margin:0;opacity:0;animation:boot-fade .25s ease forwards}@keyframes boot-fade{to{opacity:1}}.cursor-blink{display:inline-block;animation:blink .9s steps(1) infinite}@keyframes blink{50%{opacity:0}}.top-right{font-variant-numeric:tabular-nums}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}.reveal.in-view{opacity:1;transform:translateY(0)}.status-dot{animation:pulse-dot 2.4s ease-in-out infinite}@keyframes pulse-dot{0%,100%{box-shadow:0 0 12px var(--accent)}50%{box-shadow:0 0 22px var(--accent),0 0 4px var(--accent)}}
.hero{min-height:auto;padding-block:105px 45px}.hero-footer{margin-top:38px}
.mobile-menu-toggle,.mobile-menu{display:none}
@media(max-width:800px){.hero{min-height:auto;padding-block:70px 35px}.nav{gap:10px;flex-wrap:wrap}.nav-links{display:none}.mobile-menu-toggle{display:flex;margin-left:auto;align-items:center;gap:9px;border:1px solid var(--line);background:#080c0e;color:var(--muted);padding:9px 12px;font:700 .62rem ui-monospace,monospace;letter-spacing:.08em;cursor:pointer;touch-action:manipulation}.mobile-menu-toggle span{color:var(--accent);font-size:.85rem;line-height:1}.mobile-menu-toggle:active,.mobile-menu-toggle:focus{border-color:var(--accent);color:var(--accent);outline:none}.mobile-menu{width:100%;order:3;position:static;border:1px solid var(--line);background:rgba(5,6,8,.98);padding:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease;margin-top:0}.mobile-menu.open{display:flex;flex-direction:column;max-height:500px;opacity:1;margin-top:8px}.mobile-menu a{display:block;padding:14px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.12em;touch-action:manipulation}.mobile-menu a:last-child{border-bottom:0}.mobile-menu a:hover,.mobile-menu a:active{color:var(--accent);background:rgba(97,246,197,.04)}.brand{font-size:.7rem}.brand small{display:none}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.status-dot{animation:none}.mobile-menu{transition:none}}
