*,:before,:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--primary);outline-offset:4px}::selection{background-color:var(--primary);color:#000}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--background-alt)}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--primary) 55%, transparent);border:2px solid var(--background-alt);background-clip:padding-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--primary);background-clip:padding-box}*{scrollbar-width:auto;scrollbar-color:color-mix(in srgb, var(--primary) 55%, transparent) var(--background-alt)}@keyframes revealUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes revealFade{0%{opacity:0}to{opacity:1}}.reveal{animation:.8s cubic-bezier(.16,1,.3,1) forwards revealUp}.reveal-fade{animation:1.2s forwards revealFade}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}html{--font-display:var(--font-el-messiri,"El Messiri"), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:var(--font-el-messiri,"El Messiri"), var(--font-fraunces,Georgia), serif;--font-sans:var(--font-el-messiri,"El Messiri"), var(--font-noto-arabic,sans-serif), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:var(--font-display);--font-logo:var(--font-display);--font-mono:var(--font-mono-jb,"JetBrains Mono"), "Fira Code", monospace;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}input,textarea,select,button{font-family:inherit}body{font-family:var(--font-sans);background-color:var(--background);color:var(--foreground);min-height:100vh;line-height:1.6;position:relative;overflow-x:hidden}body:before,body:after{content:"";z-index:-1;pointer-events:none;will-change:transform;position:fixed;inset:-30vh -30vw}body:before{background:radial-gradient(46vw 42vw at 16% 18%, color-mix(in srgb, var(--primary) 60%, transparent) 0%, color-mix(in srgb, var(--primary) 26%, transparent) 40%, transparent 72%), radial-gradient(52vw 48vw at 86% 14%, #38bdf885 0%, #38bdf838 42%, transparent 72%), radial-gradient(54vw 50vw at 64% 92%, color-mix(in srgb, var(--secondary) 50%, transparent) 0%, color-mix(in srgb, var(--secondary) 20%, transparent) 42%, transparent 72%);filter:blur(4px);animation:30s ease-in-out infinite alternate auroraDriftA}body:after{background:radial-gradient(48vw 44vw at 8% 84%, color-mix(in srgb, var(--accent) 52%, transparent) 0%, color-mix(in srgb, var(--accent) 22%, transparent) 42%, transparent 72%), radial-gradient(44vw 40vw at 96% 54%, #38bdf870 0%, #38bdf82e 44%, transparent 72%), radial-gradient(38vw 36vw at 46% 40%, color-mix(in srgb, var(--primary) 34%, transparent) 0%, transparent 66%);filter:blur(6px);animation:44s ease-in-out infinite alternate auroraDriftB}@keyframes auroraDriftA{0%{transform:translate(0,0)scale(1)}50%{transform:translate(3%,4%)scale(1.08)}to{transform:translate(-3%,-2%)scale(1.04)}}@keyframes auroraDriftB{0%{transform:translate(0,0)scale(1.05)}50%{transform:translate(-4%,-3%)scale(1)}to{transform:translate(3%,2%)scale(1.1)}}a{color:var(--link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--link-hover)}img{max-width:100%;height:auto;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[dir=rtl]{text-align:right}[dir=ltr]{text-align:left}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg)}.reveal-pending{opacity:0;transform:translateY(16px)}.reveal-in{opacity:1;transition:opacity var(--motion-slow) var(--ease-out-quint), transform var(--motion-slow) var(--ease-out-quint);transform:translateY(0)}.reveal-stagger>*{transition-delay:var(--reveal-delay,0s)}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-fade-up{opacity:0;animation:heroFadeUp var(--motion-slow) var(--ease-out-quint) forwards;animation-delay:var(--hero-delay,0s)}@media (max-width:640px){input,select,textarea{font-size:16px}button,a[role=button]{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal-pending{opacity:1;transform:none}body:before,body:after{animation:none!important}}
