8282 ]
8383 }
8484 </ script >
85- < script type ="module " crossorigin src ="/www/index.d486ec1a.js "> </ script >
86- < link rel ="stylesheet " href ="/www/index-4850bc89.css ">
85+ < script > try { if ( + sessionStorage . getItem ( 'pest-scroll' ) > 100 ) document . documentElement . classList . add ( 'no-intro' ) ; } catch ( e ) { } </ script >
86+ < script type ="module " crossorigin src ="/www/index.34cf911c.js "> </ script >
87+ < link rel ="stylesheet " href ="/www/index-75b02b45.css ">
8788 </ head >
8889
8990 < body x-data ="{ mobileMenuIsOpen: false } " class ="font-synthesis-none overflow-x-clip bg-zinc-900 font-sans text-zinc-200 antialiased selection:bg-rose-600 selection:text-white ">
@@ -666,7 +667,12 @@ <h3 class="font-display font-stretch-112% text-balance text-xl font-bold">Loved
666667 < section aria-label ="Get started " class ="relative border-y border-zinc-700 ">
667668 < span class ="-left-1.25 -top-1.25 size-2.25 before:w-2.25 after:h-2.25 pointer-events-none absolute z-10 before:absolute before:left-0 before:top-1 before:h-px before:bg-rose-500 before:content-[''] after:absolute after:left-1 after:top-0 after:w-px after:bg-rose-500 after:content-[''] "> </ span >
668669 < span class ="-right-1.25 -top-1.25 size-2.25 before:w-2.25 after:h-2.25 pointer-events-none absolute z-10 before:absolute before:left-0 before:top-1 before:h-px before:bg-rose-500 before:content-[''] after:absolute after:left-1 after:top-0 after:w-px after:bg-rose-500 after:content-[''] "> </ span >
669- < div class ="bg-size-[56px_56px] mask-[radial-gradient(ellipse_70%_90%_at_50%_45%,#000_30%,transparent_75%)] absolute inset-0 bg-[linear-gradient(var(--color-zinc-700)_1px,transparent_1px),linear-gradient(90deg,var(--color-zinc-700)_1px,transparent_1px)] opacity-50 "> </ div >
670+ < div class ="bg-size-[56px_56px] mask-[radial-gradient(ellipse_70%_90%_at_50%_45%,#000_30%,transparent_75%)] absolute inset-0 bg-[linear-gradient(var(--color-zinc-700)_1px,transparent_1px),linear-gradient(90deg,var(--color-zinc-700)_1px,transparent_1px)] opacity-50 " x-data x-init ="$el.querySelectorAll('[data-beam]').forEach(b => { const roll = () => { const h = b.dataset.beam === 'x'; const lines = Math.floor((h ? $el.clientHeight : $el.clientWidth) / 56); b.style[h ? 'top' : 'left'] = 56 * (1 + Math.floor(Math.random() * (lines - 1))) + 'px'; b.style.setProperty('--beam-duration', (4 + 8 * Math.random()).toFixed(1) + 's'); b.style.animationDirection = Math.random() < 0.5 ? 'reverse' : 'normal'; }; roll(); b.addEventListener('animationiteration', roll) }) ">
671+ < span data-beam ="x " class ="animate-beam-x motion-reduce:hidden absolute inset-x-0 top-28 h-px bg-[linear-gradient(90deg,transparent,var(--color-rose-500),transparent)] bg-size-[160px_100%] bg-no-repeat drop-shadow-[0_0_6px_var(--color-rose-500)] [--beam-duration:7s] "> </ span >
672+ < span data-beam ="x " class ="animate-beam-x motion-reduce:hidden absolute inset-x-0 top-56 h-px bg-[linear-gradient(90deg,transparent,var(--color-rose-500),transparent)] bg-size-[160px_100%] bg-no-repeat drop-shadow-[0_0_6px_var(--color-rose-500)] [--beam-duration:11s] [--beam-delay:5.5s] "> </ span >
673+ < span data-beam ="y " class ="animate-beam-y motion-reduce:hidden absolute inset-y-0 left-70 w-px bg-[linear-gradient(180deg,transparent,var(--color-rose-500),transparent)] bg-size-[100%_160px] bg-no-repeat drop-shadow-[0_0_6px_var(--color-rose-500)] [--beam-duration:13s] [--beam-delay:3.5s] "> </ span >
674+ < span data-beam ="y " class ="animate-beam-y motion-reduce:hidden absolute inset-y-0 left-140 w-px bg-[linear-gradient(180deg,transparent,var(--color-rose-500),transparent)] bg-size-[100%_160px] bg-no-repeat drop-shadow-[0_0_6px_var(--color-rose-500)] [--beam-duration:8s] [--beam-delay:1s] "> </ span >
675+ </ div >
670676 < div class ="relative mx-auto flex max-w-2xl flex-col items-center px-5 py-20 text-center lg:py-24 ">
671677 < h2 class ="font-display font-stretch-112% text-balance text-3xl font-extrabold tracking-tight sm:text-4xl "> Bring back the joy of testing. < em class ="text-rose-500 "> Again.</ em > </ h2 >
672678 < p class ="mt-4 text-pretty text-lg text-zinc-400 "> The biggest release of Pest yet — for most suites, a one-line upgrade.</ p >
@@ -684,8 +690,9 @@ <h2 class="font-display font-stretch-112% text-balance text-3xl font-extrabold t
684690 </ section >
685691 </ main >
686692
687- < footer class ="container mx-auto px-5 pb-8 pt-16 sm:px-10 ">
688- < nav aria-label ="Footer " class ="columns-2 gap-x-6 lg:columns-3 ">
693+ < footer class ="pb-8 ">
694+ < div class ="container relative mx-auto border-b border-zinc-700 px-5 pb-6 pt-16 sm:border-x sm:px-10 ">
695+ < nav aria-label ="Footer " class ="columns-2 gap-x-6 lg:columns-3 ">
689696 < div class ="mb-10 break-inside-avoid ">
690697 < h3 class ="mb-4 flex items-center gap-2.5 font-mono text-2xs font-bold uppercase tracking-widest text-zinc-500 "> < span class ="text-rose-500 "> //</ span > what's new</ h3 >
691698 < ul class ="space-y-3 text-sm ">
@@ -764,8 +771,12 @@ <h3 class="mb-4 flex items-center gap-2.5 font-mono text-2xs font-bold uppercase
764771 < li > < a class ="text-zinc-400 underline-offset-4 transition-colors hover:text-zinc-200 hover:underline " href ="/docs/why-pest "> Why Pest</ a > </ li >
765772 </ ul >
766773 </ div >
767- </ nav >
768- < div class ="mt-14 flex flex-col items-start justify-between gap-4 border-t border-zinc-700 pt-8 text-xs text-zinc-400 sm:flex-row sm:items-center ">
774+ </ nav >
775+ < span class ="-bottom-1.25 size-2.25 before:w-2.25 after:h-2.25 -left-1.25 pointer-events-none absolute z-10 before:absolute before:left-0 before:top-1 before:h-px before:bg-rose-500 before:content-[''] after:absolute after:left-1 after:top-0 after:w-px after:bg-rose-500 after:content-[''] "> </ span >
776+ < span class ="-bottom-1.25 -right-1.25 size-2.25 before:w-2.25 after:h-2.25 pointer-events-none absolute z-10 before:absolute before:left-0 before:top-1 before:h-px before:bg-rose-500 before:content-[''] after:absolute after:left-1 after:top-0 after:w-px after:bg-rose-500 after:content-[''] "> </ span >
777+ </ div >
778+ < div class ="container mx-auto px-5 pt-8 sm:px-10 ">
779+ < div class ="flex flex-col items-start justify-between gap-4 text-xs text-zinc-400 sm:flex-row sm:items-center ">
769780 < div class ="font-mono "> © 2026 PestPHP — A project by < a class ="font-medium underline underline-offset-4 hover:no-underline " href ="https://pinkary.com/@nunomaduro "> Nuno Maduro</ a > . Designed by < a class ="font-medium underline-offset-4 underline hover:no-underline " href ="https://nunoguerra.com/?ref=nunomaduro "> Nuno Guerra</ a > .</ div >
770781 < div class ="flex items-center gap-5 font-mono ">
771782 < a class ="underline-offset-4 hover:underline " href ="/llms.txt "> /llms.txt</ a >
@@ -775,7 +786,9 @@ <h3 class="mb-4 flex items-center gap-2.5 font-mono text-2xs font-bold uppercase
775786 </ div >
776787 < svg aria-hidden ="true " class ="mt-10 h-auto w-full fill-white/10 " viewBox ="0 0 381 100 " xmlns ="http://www.w3.org/2000/svg ">
777788 < use href ="#pest-wordmark " />
789+ < use href ="#pest-wordmark " class ="animate-trace motion-reduce:hidden fill-none stroke-rose-500/60 drop-shadow-[0_0_4px_var(--color-rose-500)] [stroke-dasharray:40_360] stroke-[0.3] " />
778790 </ svg >
791+ </ div >
779792 </ footer >
780793
781794
0 commit comments