Headers module
Everything above the fold.
An announcement bar, a sticky navigation with a working mobile menu, four hero variants, an interior page header and breadcrumbs. No script in any of it — resize this window and open the menu to check.
<header class="pf-nav">
<div class="pf-container pf-nav__inner">
<a class="pf-nav__brand" href="/">…</a>
<!-- the entire mobile menu -->
<input type="checkbox" id="pf-nav-toggle"
class="pf-nav__checkbox">
<label class="pf-nav__burger"
for="pf-nav-toggle"><span></span></label>
<div class="pf-nav__menu">…</div>
</div>
</header>
Headers module
Everything above the fold.
An announcement bar, a sticky navigation with a working mobile menu, four hero variants, an interior page header and breadcrumbs. No script in any of it — resize this window and open the menu to check.
<header class="pf-nav">
<div class="pf-container pf-nav__inner">
<a class="pf-nav__brand" href="/">…</a>
<!-- the entire mobile menu -->
<input type="checkbox" id="pf-nav-toggle"
class="pf-nav__checkbox">
<label class="pf-nav__burger"
for="pf-nav-toggle"><span></span></label>
<div class="pf-nav__menu">…</div>
</div>
</header>
Cybersecurity · 50 articles
The control worked. That’s the problem.
CVEs read past the CVSS score, crypto explained without hand-waving, and post-mortems on breaches where every system did exactly what it was built to do.
- Primary sources
- CVEs read in full
- No fear-selling
- Articles
- 50
- Latest
- 14 Aug 2026
- Running since
- Aug 2021
- New posts
- Mon & Fri
Headers module
Everything above the fold.
An announcement bar, a sticky navigation with a working mobile menu, four hero variants, an interior page header and breadcrumbs. No script in any of it — resize this window and open the menu to check.
<header class="pf-nav">
<div class="pf-container pf-nav__inner">
<a class="pf-nav__brand" href="/">…</a>
<!-- the entire mobile menu -->
<input type="checkbox" id="pf-nav-toggle"
class="pf-nav__checkbox">
<label class="pf-nav__burger"
for="pf-nav-toggle"><span></span></label>
<div class="pf-nav__menu">…</div>
</div>
</header>
Announcement bars
Two tones, one line of markup
Heroes
Centred, split and compact
The scale mesh behind each hero is a masked background on the section itself — no image request, no wrapper element.
Navigation variants
Three behaviours
.pf-nav
Sticky and blurred, with a solid fallback where color-mix() isn't supported. The default, and what this page uses.
.pf-nav--static
Scrolls away with the page. The right choice for application shells where vertical space is scarce.
.pf-nav--flush
Transparent with no bottom border, for sitting directly on top of a photo hero.
The mobile menu is a checkbox
The input sits before .pf-nav__menu in the markup and a sibling selector opens it. The label is keyboard focusable, the state is real, and there is no script to initialise or forget.