/* =========================================================================
   Nautical Chart — theme stylesheet
   -------------------------------------------------------------------------
   1.  Tokens
   2.  Base & reset
   3.  Utilities and shared components
   4.  Top bar, header, nav, overlay
   5.  Hero and chart artwork
   6.  Home sections
   7.  Sidebar boxes
   8.  Guide (single)
   9.  Prose
   10. Archive
   11. Search and 404
   12. Comments
   13. Footer
   14. Ad slots
   15. Responsive
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Tokens
   ---------------------------------------------------------------------- */

:root {
	--paper: #EFE9D6;
	--paper-2: #F6F2E6;
	--shoal: #CFE3E0;
	--water: #7FB3C8;
	--water-light: #A9CFDC;

	--ink: #1B2A3A;
	--ink-85: rgba(27, 42, 58, .85);
	--ink-72: rgba(27, 42, 58, .72);
	--ink-50: rgba(27, 42, 58, .5);
	--ink-40: rgba(27, 42, 58, .4);
	--ink-25: rgba(27, 42, 58, .25);
	--ink-14: rgba(27, 42, 58, .14);

	/* One red per ground. --buoy is graphics and large type only; the other
	   three are the only reds allowed for small text, each on the ground it
	   is named for. Ratios measured against the token beneath it:
	   text 4.91 on paper, shoal 4.92 on shoal, on-ink 5.02 on ink. */
	--buoy: #C6432B;
	--buoy-text: #B23A24;
	--buoy-on-shoal: #A83521;
	--buoy-on-ink: #E0765F;

	--paper-60: rgba(239, 233, 214, .6);
	--paper-75: rgba(239, 233, 214, .75);
	--paper-85: rgba(239, 233, 214, .85);
	--paper-20: rgba(239, 233, 214, .2);

	--font-serif: 'Spectral', Georgia, 'Times New Roman', serif;
	--font-mono: 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;

	--radius: 0;

	--space-1: 8px;
	--space-2: 12px;
	--space-3: 18px;
	--space-4: 24px;
	--space-5: 36px;
	--space-6: 44px;
	--space-7: 56px;

	--container: 1280px;
	--gutter: 40px;
	--sidebar: 300px;
	--measure: 760px;

	--ad-header: 90px;
	--ad-rect: 250px;
	--ad-half: 600px;
	--ad-article: 280px;
	--ad-anchor: 70px;

	--ease: 150ms ease-out;
}

/* -------------------------------------------------------------------------
   2. Base & reset
   ---------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 24px;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font: 400 18px/1.65 var(--font-serif);
	font-synthesis-weight: none;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--ink);
	text-decoration-color: var(--buoy);
	text-underline-offset: 3px;
	transition: color var(--ease), background-color var(--ease), border-color var(--ease), text-decoration-color var(--ease);
}

a:hover {
	color: var(--buoy-text);
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--buoy);
	outline-offset: 2px;
}

/* The chart hero puts red on a blue-green blob; keep the ring visible. */
.nc-hero :focus-visible {
	outline-color: var(--ink);
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 300;
	letter-spacing: -.01em;
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.nc-skip {
	position: absolute;
	left: -9999px;
	z-index: 100;
	padding: 14px 20px;
	background: var(--ink);
	color: var(--paper);
	font: 500 11px/1 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
}

/* Fixed, not absolute: an absolutely positioned skip link is placed against
   the initial containing block, so it lands above the fold when the reader
   tabs into a page that is already scrolled. */
.nc-skip:focus {
	position: fixed;
	left: 8px;
	top: 8px;
	color: var(--paper);
}

.nc-page {
	max-width: var(--container);
	margin: 0 auto;
	background: var(--paper);
}

.nc-main {
	display: block;
}

/* -------------------------------------------------------------------------
   3. Utilities and shared components
   ---------------------------------------------------------------------- */

.nc-kicker {
	margin: 0;
	font: 400 10px/1.3 var(--font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--buoy-text);
	font-weight: 400;
}

/* The comp sets the whole kicker in one colour, middots included; a dimmed
   separator would be both a deviation and a 1.7:1 contrast failure. */
.nc-kicker__sep {
	color: inherit;
}

/* Shoal-green boxes need the darker red and a heavier ink. */
.nc-box--conditions .nc-kicker,
.nc-box--newsletter .nc-kicker,
.nc-prose .is-style-nc-callout .nc-kicker {
	color: var(--buoy-on-shoal);
}

.nc-h2 {
	margin: 10px 0 16px;
	font: 300 34px/1.15 var(--font-serif);
	letter-spacing: -.01em;
}

.nc-empty {
	margin: 0;
	padding: var(--space-6) 0;
	color: var(--ink-72);
	font-size: 16px;
}

/* Buttons ---------------------------------------------------------------- */

.nc-btn {
	display: inline-block;
	font: 500 11px/1 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--radius);
	cursor: pointer;
	text-align: center;
}

.nc-btn--primary {
	background: var(--ink);
	color: var(--paper);
	border: 0;
	padding: 15px 22px;
}

.nc-btn--primary:hover,
.nc-btn--primary:focus-visible {
	background: var(--buoy);
	color: var(--paper);
}

.nc-btn--secondary {
	background: transparent;
	color: var(--ink);
	border: 1px solid var(--ink);
	padding: 14px 20px;
}

.nc-btn--secondary:hover,
.nc-btn--secondary:focus-visible {
	background: var(--ink);
	color: var(--paper);
}

.nc-btn--small {
	font-size: 10.5px;
	padding: 12px 16px;
}

.nc-btn--secondary.nc-btn--small {
	padding: 11px 15px;
}

.nc-btn--block {
	display: block;
	width: 100%;
}

/* Text link -------------------------------------------------------------- */

.nc-textlink {
	display: inline-block;
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid var(--buoy);
	padding-bottom: 3px;
	white-space: nowrap;
}

.nc-textlink:hover {
	color: var(--buoy-text);
}

/* Chips ------------------------------------------------------------------ */

.nc-chip {
	display: inline-block;
	border: 1px solid var(--ink-50);
	padding: 8px 12px;
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
}

.nc-chip:hover {
	border-color: var(--ink);
}

.nc-chip.is-active {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.nc-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1);
	margin: var(--space-4) var(--gutter) 0;
}

.nc-filters__label {
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
	margin-right: 4px;
}

/* Avatars ---------------------------------------------------------------- */

.nc-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	border-radius: 50%;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-serif);
	font-weight: 400;
	line-height: 1;
	letter-spacing: .02em;
}

.nc-avatar--byline { width: 34px; height: 34px; font-size: 12px; }
.nc-avatar--author { width: 72px; height: 72px; font-size: 24px; }
.nc-avatar--editor { width: 56px; height: 56px; font-size: 18px; }

.nc-avatar--comment {
	width: 44px;
	height: 44px;
	font-size: 14px;
	background: transparent;
	border: 1px solid var(--ink);
	color: var(--ink);
}

/* Forms ------------------------------------------------------------------ */

.nc-form__field {
	margin: 0 0 var(--space-3);
}

.nc-form__field label {
	display: block;
	margin-bottom: 6px;
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="number"],
textarea,
select {
	width: 100%;
	border: 1px solid var(--ink);
	background: var(--paper-2);
	color: var(--ink);
	font: 400 12px/1.5 var(--font-mono);
	padding: 12px 13px;
	border-radius: var(--radius);
}

textarea {
	font: 400 15px/1.6 var(--font-serif);
	min-height: 110px;
	resize: vertical;
}

::placeholder {
	color: var(--ink-50);
	opacity: 1;
}

/* Search form ------------------------------------------------------------ */

.nc-searchform {
	display: flex;
	border: 1px solid var(--ink);
	background: var(--paper);
	flex: none;
}

.nc-searchform__input {
	width: 150px;
	border: 0;
	background: transparent;
	padding: 9px 12px;
	font: 400 11px/1 var(--font-mono);
	outline-offset: -2px;
}

.nc-searchform__submit {
	border: 0;
	border-left: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	padding: 0 12px;
	font: 500 10px/1 var(--font-mono);
	letter-spacing: .16em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--ease);
}

.nc-searchform__submit:hover {
	background: var(--buoy);
}

/* -------------------------------------------------------------------------
   4. Top bar, header, nav, overlay
   ---------------------------------------------------------------------- */

.nc-topbar {
	background: var(--ink);
	color: var(--paper);
}

.nc-topbar__inner {
	display: flex;
	justify-content: space-between;
	gap: var(--space-3);
	padding: 10px var(--gutter);
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
}

.nc-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 20px var(--gutter);
	border-bottom: 1px solid var(--ink);
}

.nc-brand {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none;
	color: var(--ink);
	flex: none;
}

.nc-brand:hover {
	color: var(--ink);
}

/* Compass mark: ring, crosshair overshooting by 4px, buoy centre. */
.nc-mark {
	position: relative;
	display: block;
	flex: none;
	width: 52px;
	height: 52px;
}

.nc-mark--mobile {
	width: 36px;
	height: 36px;
}

.nc-mark__ring {
	position: absolute;
	inset: 0;
	border: 1.5px solid var(--ink);
	border-radius: 50%;
}

.nc-mark__cross {
	position: absolute;
	background: var(--ink);
}

.nc-mark__cross--v {
	left: 50%;
	top: -4px;
	bottom: -4px;
	width: 1px;
	transform: translateX(-50%);
}

.nc-mark__cross--h {
	top: 50%;
	left: -4px;
	right: -4px;
	height: 1px;
	transform: translateY(-50%);
}

.nc-mark__dot {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 8px;
	height: 8px;
	background: var(--buoy);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

.nc-mark--mobile .nc-mark__dot {
	width: 6px;
	height: 6px;
}

.nc-mark--custom {
	width: auto;
	height: auto;
}

.nc-brand__text {
	display: block;
}

.nc-brand__name {
	display: block;
	font: italic 300 40px/1 var(--font-serif);
	white-space: nowrap;
}

.nc-brand__descriptor {
	display: block;
	margin-top: 3px;
	font: 400 9px/1 var(--font-mono);
	letter-spacing: .42em;
	text-transform: uppercase;
}

/* Primary nav ------------------------------------------------------------ */

/* Eight sheets at 1280 do not fit beside a 40px wordmark and the search
   field — the comp breaks its own items mid-phrase to cope. Items stay whole
   here and the row wraps instead, with a tighter gap so a shorter menu still
   makes one line. */
.nc-nav {
	min-width: 0;
}

.nc-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 10px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 11px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
}

@media (min-width: 1400px) {
	.nc-nav__list {
		gap: 10px 22px;
	}
}

.nc-nav__list a {
	display: block;
	text-decoration: none;
	color: var(--ink);
	white-space: nowrap;
}

.nc-nav__list a:hover {
	color: var(--buoy-text);
}

.nc-nav__list .current-menu-item > a,
.nc-nav__list .current-menu-parent > a,
.nc-nav__list .current-menu-ancestor > a {
	color: var(--buoy-text);
	border-bottom: 1px solid var(--buoy);
	padding-bottom: 3px;
}

.nc-nav__index {
	display: none;
}

/* Burger and overlay ----------------------------------------------------- */

.nc-header__controls {
	display: none;
	gap: 8px;
	flex: none;
}

.nc-iconbtn {
	display: inline-flex;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--ink);
	cursor: pointer;
	align-items: center;
	justify-content: center;
	color: var(--ink);
	border-radius: var(--radius);
	transition: background-color var(--ease), color var(--ease);
}

.nc-iconbtn:hover {
	background: var(--ink);
	color: var(--paper);
}

.nc-burger__bars {
	display: block;
	width: 18px;
}

.nc-burger__bars span {
	display: block;
	height: 1px;
	background: var(--ink);
}

.nc-burger__bars span + span {
	margin-top: 4px;
}

.nc-overlay {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: var(--paper);
	padding: 20px var(--gutter) var(--space-6);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.nc-overlay[hidden] {
	display: none;
}

.nc-overlay__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--ink);
}

.nc-overlay__kicker {
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-overlay__close {
	width: 44px;
	height: 44px;
	border: 1px solid var(--ink);
	background: transparent;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.nc-overlay__search {
	margin: var(--space-4) 0;
}

.nc-overlay__search .nc-searchform {
	width: 100%;
}

.nc-overlay__search .nc-searchform__input {
	width: auto;
	flex: 1;
	padding: 13px 14px;
	font-size: 13px;
}

.nc-overlay__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-overlay__list li + li {
	border-top: 1px solid var(--ink-25);
}

.nc-overlay__list a {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 14px 0;
	font: 300 28px/1.2 var(--font-serif);
	text-decoration: none;
	min-height: 44px;
}

.nc-overlay__index {
	font: 400 11px/1 var(--font-mono);
	color: var(--buoy-text);
	flex: none;
}

.nc-overlay__foot {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-5);
	margin-top: var(--space-6);
	padding-top: var(--space-4);
	border-top: 1px solid var(--ink-25);
}

.nc-overlay__foot-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 11px/2.2 var(--font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
}

.nc-overlay__foot-list a {
	text-decoration: none;
}

body.nc-menu-open {
	overflow: hidden;
}

/* -------------------------------------------------------------------------
   5. Hero and chart artwork
   ---------------------------------------------------------------------- */

.nc-hero {
	position: relative;
	height: 600px;
	overflow: hidden;
	margin-top: var(--space-4);
	border-top: 1px solid var(--ink);
	background-color: var(--paper);
	background-image:
		linear-gradient(var(--ink-14) 1px, transparent 1px),
		linear-gradient(90deg, var(--ink-14) 1px, transparent 1px);
	background-size: 80px 80px;
}

.nc-hero--404 {
	height: 560px;
	margin-top: 0;
}

/* The art layer is a fixed 1280x600 canvas pinned to the right edge, so every
   element keeps its designed coordinates and the composition crops from the
   left rather than reflowing. */
.nc-chart__art {
	position: absolute;
	top: 0;
	right: 0;
	width: 1280px;
	height: 600px;
	pointer-events: none;
}

.nc-chart__art--404 {
	height: 560px;
}

/* The comp draws a different composition below 600: a smaller blob tucked
   into the bottom-right so it clears the headline, on a 60px grid. */
.nc-chart__art--mobile {
	display: none;
	width: 390px;
	height: 420px;
}

.nc-chart__art--mobile .nc-chart__water {
	right: -160px;
	top: auto;
	bottom: -200px;
	width: 460px;
	height: 460px;
}

.nc-chart__art--mobile .nc-chart__sounding {
	font-size: 11px;
}

.nc-chart__water {
	position: absolute;
	right: -140px;
	top: -120px;
	width: 820px;
	height: 820px;
	border-radius: 46% 54% 58% 42% / 48% 40% 60% 52%;
	background: radial-gradient(circle at 60% 40%, var(--water-light), var(--water) 70%);
}

.nc-chart__art--404 .nc-chart__water {
	right: -200px;
	top: -260px;
	width: 900px;
	height: 900px;
}

.nc-chart__shoal {
	position: absolute;
	right: 220px;
	top: 300px;
	width: 420px;
	height: 360px;
	border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
	background: var(--shoal);
	border: 1px dashed var(--ink-50);
}

.nc-chart__sounding {
	position: absolute;
	font: italic 400 13px/1 var(--font-mono);
	color: var(--ink);
}

.nc-chart__place {
	position: absolute;
	font: 400 9.5px/1 var(--font-mono);
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--ink-72);
	white-space: nowrap;
}

.nc-chart__place--buoy {
	letter-spacing: .2em;
	color: var(--buoy-text);
}

.nc-chart__course {
	position: absolute;
	border-top: 2px dashed var(--buoy);
	transform: rotate(var(--nc-rot, -22deg));
	transform-origin: left center;
}

.nc-chart__buoy {
	position: absolute;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--buoy);
	border: 2px solid var(--paper);
}

/* Hero text -------------------------------------------------------------- */

.nc-hero__text {
	position: absolute;
	left: var(--gutter);
	top: 64px;
	width: 600px;
	max-width: calc(100% - var(--gutter) * 2);
}

.nc-hero--404 .nc-hero__text {
	top: 76px;
}

.nc-hero__kicker {
	margin: 0;
	font: 400 10.5px/1.4 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-hero--404 .nc-hero__kicker {
	letter-spacing: .24em;
}

.nc-hero__title {
	margin: 18px 0 20px;
	font: 300 66px/1.02 var(--font-serif);
	letter-spacing: -.015em;
}

.nc-hero__title em {
	font-style: italic;
}

.nc-hero__title--404 {
	margin: 16px 0;
	font-size: 72px;
	line-height: 1;
	letter-spacing: -.02em;
}

.nc-hero__lead {
	margin: 0 0 28px;
	font: 400 18px/1.5 var(--font-serif);
	color: var(--ink-85);
	max-width: 520px;
}

.nc-hero--404 .nc-hero__lead {
	margin-bottom: 26px;
	max-width: 480px;
}

.nc-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.nc-hero__search {
	max-width: 480px;
	margin-bottom: var(--space-3);
}

.nc-hero__search .nc-searchform {
	width: 100%;
}

.nc-hero__search .nc-searchform__input {
	width: auto;
	flex: 1;
	padding: 13px 14px;
	font-size: 13px;
}

.nc-hero__search .nc-searchform__submit {
	padding: 0 18px;
	font-size: 10.5px;
	letter-spacing: .2em;
}

/* Legend ----------------------------------------------------------------- */

.nc-legend {
	position: absolute;
	left: var(--gutter);
	bottom: var(--space-5);
	max-width: calc(100% - var(--gutter) * 2);
	background: var(--paper);
	border: 1px solid var(--ink);
	padding: 14px 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	font: 400 10.5px/1.4 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
}

.nc-legend__title {
	color: var(--ink-72);
}

.nc-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.nc-legend__swatch {
	display: inline-block;
	flex: none;
}

.nc-legend__swatch--route {
	width: 26px;
	border-top: 2px dashed var(--buoy);
}

.nc-legend__swatch--detour {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--buoy);
}

.nc-legend__swatch--shoal {
	width: 20px;
	height: 9px;
	background: var(--shoal);
	border: 1px dashed var(--ink);
}

/* -------------------------------------------------------------------------
   6. Home sections
   ---------------------------------------------------------------------- */

.nc-directions {
	display: grid;
	grid-template-columns: 1fr var(--sidebar);
	gap: var(--space-6);
	padding: var(--space-6) var(--gutter);
	border-top: 1px solid var(--ink);
}

.nc-directions__main {
	min-width: 0;
}

.nc-directions__title {
	margin: 10px 0 22px;
	font-size: 40px;
	line-height: 1.05;
}

/* Guide rows ------------------------------------------------------------- */

.nc-row {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: var(--space-3);
	align-items: baseline;
	padding: var(--space-3) 0;
	border-top: 1px solid var(--ink-40);
	text-decoration: none;
	color: var(--ink);
}

.nc-rows .nc-row:last-child {
	border-bottom: 1px solid var(--ink-40);
}

.nc-row__index {
	font: 400 11px/1 var(--font-mono);
	color: var(--buoy-text);
}

.nc-row__main {
	min-width: 0;
}

.nc-row__title {
	display: block;
	font: 400 24px/1.2 var(--font-serif);
	transition: color var(--ease);
}

.nc-row__meta {
	display: block;
	margin-top: 6px;
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

.nc-row__arrow {
	font: 300 24px/1 var(--font-serif);
}

.nc-row:hover .nc-row__title {
	color: var(--buoy-text);
}

.nc-rows--search .nc-row {
	grid-template-columns: 52px 1fr auto;
}

/* Chart index ------------------------------------------------------------ */

.nc-index {
	padding: 0 var(--gutter) var(--space-6);
}

.nc-index__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-4);
	border-top: 1px solid var(--ink);
	padding-top: var(--space-3);
	margin-bottom: 22px;
}

.nc-index__title {
	margin: 10px 0 0;
	font-size: 40px;
	line-height: 1.05;
}

.nc-index__count {
	font: 400 10.5px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
	text-align: right;
	flex: none;
}

.nc-sheets {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.nc-sheet {
	display: block;
	border: 1px solid var(--ink);
	background: var(--paper-2);
	padding: 18px 20px 20px;
	text-decoration: none;
	color: var(--ink);
}

.nc-sheet__top {
	display: flex;
	justify-content: space-between;
	gap: var(--space-2);
	font: 400 10px/1.3 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-sheet__count {
	color: var(--ink-72);
	white-space: nowrap;
}

.nc-sheet__title {
	display: block;
	margin: 38px 0 8px;
	font: 300 28px/1.1 var(--font-serif);
	transition: color var(--ease);
}

.nc-sheet__desc {
	display: block;
	font: 400 13.5px/1.5 var(--font-serif);
	color: var(--ink-85);
}

.nc-sheet:hover .nc-sheet__title {
	color: var(--buoy-text);
}

/* Notices ---------------------------------------------------------------- */

.nc-notices {
	display: grid;
	grid-template-columns: 1fr var(--sidebar);
	gap: var(--space-6);
	padding: 0 var(--gutter) var(--space-6);
	align-items: end;
}

.nc-notices__main {
	min-width: 0;
}

.nc-notices__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-4);
	border-top: 1px solid var(--ink);
	padding-top: var(--space-3);
	margin-bottom: var(--space-1);
}

.nc-notice {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: var(--space-3);
	align-items: baseline;
	padding: var(--space-3) 0;
	border-top: 1px solid var(--ink-25);
	text-decoration: none;
	color: var(--ink);
}

.nc-notice__date {
	font: 400 10.5px/1.4 var(--font-mono);
	color: var(--ink-72);
}

.nc-notice__title {
	display: block;
	font: 400 19px/1.3 var(--font-serif);
	transition: color var(--ease);
}

.nc-notice__cat {
	display: block;
	margin-top: 5px;
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

.nc-notice:hover .nc-notice__title {
	color: var(--buoy-text);
}

/* -------------------------------------------------------------------------
   7. Sidebar boxes
   ---------------------------------------------------------------------- */

.nc-sidebar {
	display: flex;
	flex-direction: column;
	gap: 22px;
	min-width: 0;
}

.nc-sidebar__item:empty {
	display: none;
}

.nc-sidebar__sticky-wrap {
	flex: 1;
}

.nc-sidebar__sticky {
	position: sticky;
	top: 24px;
}

/* On the home column and below the breakpoint there is no sticky slot. */
.nc-sidebar--home .nc-sidebar__sticky-wrap {
	display: none;
}

.nc-sidebar__item--mobilead {
	display: none;
}

.nc-box {
	border: 1px solid var(--ink);
	padding: 20px 22px;
}

.nc-box--conditions,
.nc-box--newsletter {
	background: var(--shoal);
}

.nc-conditions__temp {
	margin: 12px 0 4px;
	font: 300 44px/1 var(--font-serif);
}

.nc-conditions__low {
	font-size: 20px;
	color: var(--ink-72);
}

.nc-conditions__list,
.nc-approaches__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-conditions__list {
	font: 400 12px/1.7 var(--font-mono);
	color: var(--ink-85);
}

.nc-approaches__list {
	margin-top: 12px;
	font: 400 15px/1.55 var(--font-serif);
}

.nc-linklist {
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.nc-linklist__item + .nc-linklist__item {
	border-top: 1px solid var(--ink-25);
}

.nc-linklist a {
	display: grid;
	grid-template-columns: 26px 1fr;
	gap: var(--space-1);
	padding: 10px 0;
	text-decoration: none;
	align-items: baseline;
}

.nc-linklist__index {
	font: 400 10px/1.4 var(--font-mono);
	color: var(--buoy-text);
}

.nc-linklist__title {
	font: 400 15px/1.4 var(--font-serif);
}

.nc-newsletter__title {
	margin: 12px 0 8px;
	font: 300 26px/1.15 var(--font-serif);
}

.nc-newsletter__text {
	margin: 0 0 14px;
	font: 400 13.5px/1.5 var(--font-serif);
	color: var(--ink-85);
}

.nc-newsletter__form input[type="email"] {
	background: var(--paper);
	padding: 11px 12px;
	margin-bottom: var(--space-1);
}

.nc-newsletter__error {
	margin: 0 0 var(--space-1);
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-newsletter__error[hidden],
.nc-newsletter__done[hidden] {
	display: none;
}

.nc-newsletter__form.has-error input[type="email"] {
	border-color: var(--buoy);
}

.nc-newsletter__done {
	margin: 0;
	font: 400 12px/1.7 var(--font-mono);
	color: var(--ink-85);
}

.nc-widget {
	border: 1px solid var(--ink);
	padding: 20px 22px;
}

.nc-widget ul {
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
	font: 400 15px/1.5 var(--font-serif);
}

/* -------------------------------------------------------------------------
   8. Guide (single)
   ---------------------------------------------------------------------- */

.nc-crumbs {
	margin: 26px var(--gutter) 0;
	font: 400 10px/1.6 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

.nc-crumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-crumbs__item + .nc-crumbs__item::before {
	content: "\2192";
	margin-right: var(--space-1);
	color: var(--ink-40);
}

.nc-crumbs a {
	color: var(--ink-72);
	text-decoration: none;
}

.nc-crumbs a:hover {
	color: var(--buoy-text);
}

.nc-crumbs [aria-current="page"] {
	color: var(--ink);
}

.nc-guide__header {
	max-width: 880px;
	margin: var(--space-4) var(--gutter) 0;
}

.nc-guide__kicker {
	margin-bottom: 14px;
}

.nc-guide__title {
	margin: 0 0 var(--space-3);
	font: 300 54px/1.05 var(--font-serif);
	letter-spacing: -.015em;
}

.nc-guide__deck {
	margin: 0 0 var(--space-4);
	font: italic 400 21px/1.45 var(--font-serif);
	color: var(--ink-85);
	max-width: 760px;
}

/* Byline ----------------------------------------------------------------- */

.nc-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	border-top: 1px solid var(--ink);
	border-bottom: 1px solid var(--ink-40);
	padding: 14px 0;
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-85);
}

.nc-byline__author {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: inherit;
}

.nc-byline__role {
	color: var(--ink-72);
}

.nc-byline__sep {
	color: var(--ink-40);
}

.nc-byline__checked {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.nc-byline__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--buoy);
	flex: none;
}

.nc-byline__time {
	margin-left: auto;
	color: var(--ink-72);
	white-space: nowrap;
}

/* Hero figure ------------------------------------------------------------ */

.nc-guide__figure {
	margin: 28px var(--gutter) 0;
}

.nc-guide__figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 1200 / 520;
	object-fit: cover;
}

.nc-caption {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--space-2);
	margin-top: var(--space-1);
	font: 400 10.5px/1.5 var(--font-mono);
	color: var(--ink-72);
}

.nc-caption__num {
	color: var(--ink);
}

.nc-caption__credit {
	white-space: nowrap;
}

/* Body grid -------------------------------------------------------------- */

.nc-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--sidebar);
	gap: var(--space-7);
	padding: var(--space-5) var(--gutter) 0;
	align-items: start;
}

.nc-body__main {
	min-width: 0;
	max-width: var(--measure);
}

/* Table of contents ------------------------------------------------------ */

.nc-toc {
	border: 1px solid var(--ink);
	background: var(--paper-2);
	padding: 20px 24px 22px;
	margin-bottom: var(--space-5);
}

.nc-toc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2);
}

.nc-toc__toggle {
	display: none;
	width: 44px;
	height: 44px;
	margin: -10px -10px -10px 0;
	background: transparent;
	border: 0;
	cursor: pointer;
	align-items: center;
	justify-content: center;
}

.nc-toc__mark {
	position: relative;
	display: block;
	width: 14px;
	height: 14px;
}

.nc-toc__mark::before,
.nc-toc__mark::after {
	content: "";
	position: absolute;
	background: var(--ink);
	transition: opacity var(--ease);
}

.nc-toc__mark::before {
	left: 0;
	right: 0;
	top: 50%;
	height: 1.5px;
	transform: translateY(-50%);
}

.nc-toc__mark::after {
	top: 0;
	bottom: 0;
	left: 50%;
	width: 1.5px;
	transform: translateX(-50%);
}

.nc-toc__toggle[aria-expanded="true"] .nc-toc__mark::after {
	opacity: 0;
}

.nc-toc__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 28px;
	margin: var(--space-3) 0 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.nc-toc__item {
	border-bottom: 1px solid rgba(27, 42, 58, .2);
}

.nc-toc__item a {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: var(--space-1);
	align-items: baseline;
	padding: 6px 0;
	text-decoration: none;
}

.nc-toc__index {
	font: 400 10px/1.5 var(--font-mono);
	color: var(--buoy-text);
}

.nc-toc__text {
	font: 400 15px/1.4 var(--font-serif);
}

.nc-toc__item.is-current .nc-toc__index {
	color: var(--ink);
}

.nc-toc__item.is-current .nc-toc__text {
	text-decoration: underline;
	text-decoration-color: var(--buoy);
}

/* Sources, tags, author -------------------------------------------------- */

.nc-sources {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--space-4);
	align-items: center;
	border: 1px solid var(--ink);
	padding: 18px 22px;
	margin-top: var(--space-6);
}

.nc-sources__note {
	margin: 10px 0 0;
	font: 400 13px/1.6 var(--font-mono);
	color: var(--ink-85);
}

.nc-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-1);
	margin-top: var(--space-4);
}

.nc-tags .nc-chip {
	padding: 7px 11px;
}

.nc-author {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 22px;
	padding: var(--space-4) 0;
	margin-top: var(--space-5);
	border-top: 1px solid var(--ink);
	border-bottom: 1px solid var(--ink);
}

.nc-author__name {
	margin: 8px 0 6px;
	font: 400 22px/1.25 var(--font-serif);
}

.nc-author__role {
	display: block;
	font: 400 10px/1.6 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-author__bio {
	margin: 0 0 var(--space-2);
	font: 400 15px/1.55 var(--font-serif);
	color: var(--ink-85);
}

/* Related ---------------------------------------------------------------- */

.nc-related {
	padding: var(--space-6) var(--gutter) 0;
}

.nc-related__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-4);
	border-top: 1px solid var(--ink);
	padding-top: var(--space-3);
	margin-bottom: var(--space-4);
}

.nc-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.nc-card {
	display: block;
	border: 1px solid var(--ink);
	background: var(--paper-2);
	text-decoration: none;
	color: var(--ink);
}

.nc-card__media {
	display: block;
	height: 180px;
	overflow: hidden;
	border-bottom: 1px solid var(--ink);
}

.nc-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter var(--ease);
}

.nc-card:hover .nc-card__media img {
	filter: brightness(.96);
}

.nc-card__body {
	display: block;
	padding: 16px 20px 20px;
}

.nc-card__kicker {
	display: block;
	letter-spacing: .2em;
}

.nc-card__title {
	display: block;
	margin: 10px 0 8px;
	font: 400 21px/1.25 var(--font-serif);
	transition: color var(--ease);
}

.nc-card:hover .nc-card__title {
	color: var(--buoy-text);
}

.nc-card__meta {
	display: block;
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

/* Empty photo placeholder ------------------------------------------------ */

.nc-figure {
	display: block;
	overflow: hidden;
}

.nc-figure--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 88px;
	background: var(--shoal);
	border: 1px dashed var(--ink-50);
}

.nc-figure__label {
	font: 400 9px/1 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ink-72);
}

/* -------------------------------------------------------------------------
   9. Prose
   ---------------------------------------------------------------------- */

.nc-prose {
	font: 400 18px/1.65 var(--font-serif);
}

.nc-prose > * {
	max-width: var(--measure);
}

.nc-prose p {
	margin: 0 0 20px;
}

.nc-prose a {
	color: var(--ink);
	text-decoration: underline;
	text-decoration-color: var(--buoy);
	text-underline-offset: 3px;
}

.nc-prose a:hover {
	color: var(--buoy-text);
}

.nc-sect {
	margin: var(--space-5) 0 0;
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-prose h2,
.nc-prose .nc-h2 {
	margin: 10px 0 16px;
	font: 300 34px/1.15 var(--font-serif);
	letter-spacing: -.01em;
	scroll-margin-top: 24px;
}

.nc-prose h3 {
	margin: 26px 0 12px;
	font: 400 22px/1.3 var(--font-serif);
}

.nc-prose h4 {
	margin: 22px 0 10px;
	font: 500 12px/1.4 var(--font-mono);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-72);
}

/* Lists: mono index in a 28px column. */
.nc-prose ol,
.nc-prose ul {
	margin: 0 0 22px;
	padding: 0;
	list-style: none;
	counter-reset: nc-item;
}

.nc-prose li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 10px;
	font: 400 17px/1.55 var(--font-serif);
}

.nc-prose ol > li {
	counter-increment: nc-item;
}

.nc-prose ol > li::before {
	content: counter(nc-item, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: .35em;
	font: 400 11px/1 var(--font-mono);
	color: var(--buoy-text);
}

.nc-prose ul > li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .62em;
	width: 6px;
	height: 6px;
	background: var(--ink);
}

.nc-prose li > ul,
.nc-prose li > ol {
	margin: 10px 0 0;
}

.nc-prose blockquote {
	margin: 0 0 22px;
	padding-left: 22px;
	border-left: 2px solid var(--buoy);
	font: 300 22px/1.4 var(--font-serif);
}

.nc-prose blockquote p:last-child {
	margin-bottom: 0;
}

.nc-prose figure {
	margin: 0 0 26px;
}

.nc-prose figure img {
	width: 100%;
}

.nc-prose figcaption {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--space-2);
	margin-top: var(--space-1);
	font: 400 10.5px/1.5 var(--font-mono);
	color: var(--ink-72);
	text-align: left;
}

.nc-prose hr,
.nc-prose .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--ink);
	margin: var(--space-6) 0;
	height: 0;
}

.nc-prose code,
.nc-prose kbd {
	font: 400 .85em/1.5 var(--font-mono);
	background: var(--paper-2);
	padding: 2px 5px;
	border: 1px solid var(--ink-25);
}

.nc-prose pre {
	overflow-x: auto;
	background: var(--paper-2);
	border: 1px solid var(--ink-25);
	padding: var(--space-3);
	font: 400 13px/1.6 var(--font-mono);
}

.nc-prose pre code {
	background: none;
	border: 0;
	padding: 0;
}

/* Chart figure (image block style) --------------------------------------- */

.nc-prose .is-style-nc-map,
.nc-prose .is-style-nc-map img {
	border: 1px solid var(--ink);
}

.nc-prose .is-style-nc-map {
	background-color: var(--paper);
	background-image:
		linear-gradient(var(--ink-14) 1px, transparent 1px),
		linear-gradient(90deg, var(--ink-14) 1px, transparent 1px);
	background-size: 60px 60px;
	padding: 0;
}

.nc-prose .is-style-nc-map img {
	border: 0;
}

/* Tables ----------------------------------------------------------------- */

.nc-table-scroll {
	overflow-x: auto;
	margin: 0 0 26px;
	max-width: var(--measure);
}

.nc-prose table {
	width: 100%;
	border-collapse: collapse;
	border-top: 2px solid var(--ink);
	font: 400 15px/1.5 var(--font-serif);
}

.nc-prose thead th {
	font: 400 9.5px/1.4 var(--font-mono);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-72);
	text-align: left;
	padding: 12px 14px 10px 0;
	border-bottom: 1px solid var(--ink);
	white-space: nowrap;
}

.nc-prose tbody td {
	padding: 12px 14px 12px 0;
	border-bottom: 1px solid var(--ink-25);
	vertical-align: top;
}

.nc-prose tbody tr:last-child td {
	border-bottom: 1px solid var(--ink);
}

.nc-prose td:last-child,
.nc-prose th:last-child {
	padding-right: 0;
}

.nc-prose table figcaption,
.nc-prose .wp-block-table figcaption {
	margin-top: var(--space-1);
	font: 400 10.5px/1.5 var(--font-mono);
	color: var(--ink-72);
}

/* Callout: "Note to mariners" -------------------------------------------- */

.nc-prose .is-style-nc-callout {
	background: var(--shoal);
	border: 1px dashed var(--ink);
	padding: 20px 24px;
	margin: 0 0 26px;
}

.nc-prose .is-style-nc-callout > .wp-block-group__inner-container,
.nc-prose .is-style-nc-callout {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: var(--space-3);
	align-items: start;
}

/* Core wraps group children in an inner container, which would leave the
   outer grid with a single child. Let the inner container be the grid. */
.nc-prose .is-style-nc-callout:has(> .wp-block-group__inner-container) {
	display: block;
}

.nc-prose .is-style-nc-callout h2,
.nc-prose .is-style-nc-callout h3,
.nc-prose .is-style-nc-callout h4 {
	margin: 0;
	font: 400 10px/1.6 var(--font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--ink);
}

.nc-prose .is-style-nc-callout p {
	margin: 0 0 10px;
	font: 400 16px/1.55 var(--font-serif);
}

.nc-prose .is-style-nc-callout p:last-child {
	margin-bottom: 0;
}

/* Verdict ---------------------------------------------------------------- */

.nc-prose .is-style-nc-verdict {
	background: var(--ink);
	color: var(--paper);
	padding: 24px 28px;
	margin: 0 0 26px;
}

.nc-prose .is-style-nc-verdict > .wp-block-group__inner-container,
.nc-prose .is-style-nc-verdict {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: var(--space-3);
	align-items: start;
}

.nc-prose .is-style-nc-verdict:has(> .wp-block-group__inner-container) {
	display: block;
}

.nc-prose .is-style-nc-verdict h2,
.nc-prose .is-style-nc-verdict h3,
.nc-prose .is-style-nc-verdict h4 {
	margin: 0;
	font: 400 10px/1.6 var(--font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--buoy-on-ink);
}

.nc-prose .is-style-nc-verdict p {
	margin: 0;
	font: 300 24px/1.35 var(--font-serif);
	color: var(--paper);
}

.nc-prose .is-style-nc-verdict a {
	color: var(--paper);
	text-decoration-color: var(--buoy-on-ink);
}

/* FAQ -------------------------------------------------------------------- */

.nc-faq {
	border-top: 1px solid var(--ink);
	margin: 0 0 26px;
	max-width: var(--measure);
}

.nc-faq__item {
	border-bottom: 1px solid rgba(27, 42, 58, .3);
}

.nc-faq__q {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-3);
	padding: 16px 0;
	font: 400 19px/1.35 var(--font-serif);
	cursor: pointer;
	list-style: none;
	min-height: 44px;
}

.nc-faq__q::-webkit-details-marker {
	display: none;
}

.nc-faq__q:hover {
	color: var(--buoy-text);
}

.nc-faq__mark {
	position: relative;
	flex: none;
	width: 16px;
	height: 22px;
}

.nc-faq__mark::before,
.nc-faq__mark::after {
	content: "";
	position: absolute;
	background: var(--ink);
}

.nc-faq__mark::before {
	left: 0;
	right: 0;
	top: 50%;
	height: 1.5px;
	transform: translateY(-50%);
}

.nc-faq__mark::after {
	top: 3px;
	bottom: 3px;
	left: 50%;
	width: 1.5px;
	transform: translateX(-50%);
}

.nc-faq__item[open] .nc-faq__mark::after {
	opacity: 0;
}

.nc-faq__a {
	padding: 0 0 18px;
	max-width: 640px;
}

.nc-faq__a p {
	margin: 0 0 12px;
	font: 400 16px/1.6 var(--font-serif);
	color: var(--ink-85);
}

.nc-faq__a p:last-child {
	margin-bottom: 0;
}

/* Alignments ------------------------------------------------------------- */

.nc-prose .alignwide {
	max-width: min(1000px, 100%);
}

.nc-prose .alignfull {
	max-width: 100%;
}

.nc-prose .alignleft {
	float: left;
	margin: 0 var(--space-4) var(--space-3) 0;
	max-width: 45%;
}

.nc-prose .alignright {
	float: right;
	margin: 0 0 var(--space-3) var(--space-4);
	max-width: 45%;
}

.nc-prose .aligncenter {
	margin-left: auto;
	margin-right: auto;
}

.nc-prose::after {
	content: "";
	display: table;
	clear: both;
}

/* Static page ------------------------------------------------------------ */

.nc-page-doc {
	max-width: calc(var(--measure) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter) var(--space-7);
}

.nc-page-doc .nc-crumbs {
	margin-left: 0;
	margin-right: 0;
}

.nc-page-doc__header {
	padding-top: var(--space-6);
}

.nc-page-doc__title {
	margin: var(--space-2) 0 var(--space-3);
	font: 300 54px/1.05 var(--font-serif);
	letter-spacing: -.015em;
}

.nc-page-doc__deck {
	margin: 0 0 var(--space-4);
	font: italic 400 21px/1.45 var(--font-serif);
	color: var(--ink-85);
}

.nc-page-doc__revised {
	margin: 0 0 var(--space-5);
	padding-top: 14px;
	border-top: 1px solid var(--ink);
	font: 400 10.5px/1.5 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

.nc-page-wide {
	padding: var(--space-6) var(--gutter) var(--space-7);
}

.nc-prose--wide > * {
	max-width: none;
}

.nc-pagelinks {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2);
	margin-top: var(--space-5);
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* -------------------------------------------------------------------------
   10. Archive
   ---------------------------------------------------------------------- */

.nc-archive__header {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: var(--space-4);
	align-items: end;
	margin: 26px var(--gutter) 0;
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--ink);
}

.nc-archive__header .nc-crumbs {
	margin: 0 0 var(--space-2);
}

.nc-archive__title {
	margin: var(--space-2) 0 var(--space-3);
	font: 300 64px/1 var(--font-serif);
	letter-spacing: -.015em;
}

.nc-archive__desc {
	margin: 0;
	font: 400 18px/1.5 var(--font-serif);
	color: var(--ink-85);
	max-width: 640px;
}

.nc-archive__desc p {
	margin: 0 0 12px;
}

.nc-archive__desc p:last-child {
	margin-bottom: 0;
}

.nc-archive__role {
	margin: 0 0 var(--space-2);
	font: 400 10.5px/1.5 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-archive__headmeta {
	display: flex;
	flex-direction: column;
	font: 400 10.5px/1.9 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
	text-align: right;
}

/* Featured pillar -------------------------------------------------------- */

.nc-featured {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	border: 1px solid var(--ink);
	background: var(--paper-2);
	margin: var(--space-4) var(--gutter) 0;
	text-decoration: none;
	color: var(--ink);
}

.nc-featured__media {
	display: block;
	height: 380px;
	overflow: hidden;
	border-right: 1px solid var(--ink);
}

.nc-featured__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter var(--ease);
}

.nc-featured:hover .nc-featured__media img {
	filter: brightness(.96);
}

.nc-featured__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 32px 36px;
}

.nc-featured__title {
	display: block;
	margin: 14px 0 12px;
	font: 300 36px/1.1 var(--font-serif);
	transition: color var(--ease);
}

.nc-featured:hover .nc-featured__title {
	color: var(--buoy-text);
}

.nc-featured__excerpt {
	display: block;
	margin-bottom: 14px;
	font: 400 16px/1.5 var(--font-serif);
	color: var(--ink-85);
}

.nc-featured__meta {
	display: block;
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

/* Archive rows ----------------------------------------------------------- */

.nc-arow {
	display: grid;
	grid-template-columns: 52px 132px 1fr;
	gap: var(--space-3);
	padding: var(--space-3) 0;
	border-top: 1px solid var(--ink-40);
	align-items: start;
}

.nc-arows .nc-arow:last-child {
	border-bottom: 1px solid var(--ink-40);
}

.nc-arow__index {
	font: 400 11px/1.6 var(--font-mono);
	color: var(--buoy-text);
}

.nc-arow__media {
	display: block;
	width: 132px;
	height: 88px;
	overflow: hidden;
}

.nc-arow__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nc-arow__main {
	min-width: 0;
}

.nc-arow__title {
	margin: 0 0 6px;
	font: 400 22px/1.25 var(--font-serif);
}

.nc-arow__title a {
	text-decoration: none;
}

.nc-arow__excerpt {
	margin: 0 0 8px;
	font: 400 14px/1.45 var(--font-serif);
	color: var(--ink-85);
}

.nc-arow__meta {
	margin: 0;
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

/* Pagination ------------------------------------------------------------- */

.nc-pagination {
	margin-top: var(--space-6);
}

.nc-pagination .page-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1);
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .16em;
	text-transform: uppercase;
}

.nc-pagination a,
.nc-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--ink-40);
	text-decoration: none;
}

.nc-pagination .current {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.nc-pagination .dots {
	border: 0;
	color: var(--ink-40);
}

.nc-pagination a:hover {
	border-color: var(--ink);
}

/* -------------------------------------------------------------------------
   11. Search and 404
   ---------------------------------------------------------------------- */

.nc-search__header {
	margin: 26px var(--gutter) 0;
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--ink);
}

.nc-search__title {
	margin: var(--space-2) 0 var(--space-4);
	font: 300 44px/1.1 var(--font-serif);
	letter-spacing: -.015em;
}

.nc-search__title em {
	font-style: italic;
}

.nc-search__form {
	max-width: 520px;
}

.nc-search__form .nc-searchform {
	width: 100%;
	background: var(--paper-2);
}

.nc-search__form .nc-searchform__input {
	width: auto;
	flex: 1;
	font-size: 13px;
	padding: 13px 14px;
}

.nc-search__form .nc-searchform__submit {
	padding: 0 18px;
	font-size: 10.5px;
	letter-spacing: .2em;
}

.nc-empty-state {
	position: relative;
	padding: var(--space-7) var(--gutter);
	min-height: 480px;
	overflow: hidden;
	border-top: 1px solid var(--ink);
	margin-top: var(--space-4);
}

.nc-empty-state__grid {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(var(--ink-14) 1px, transparent 1px),
		linear-gradient(90deg, var(--ink-14) 1px, transparent 1px);
	background-size: 60px 60px;
}

.nc-empty-state__text {
	position: relative;
	max-width: 600px;
}

.nc-empty-state__title {
	margin: var(--space-2) 0 var(--space-3);
	font: 300 48px/1.05 var(--font-serif);
	letter-spacing: -.015em;
}

.nc-empty-state__title em {
	font-style: italic;
}

.nc-empty-state__lead {
	margin: 0 0 var(--space-4);
	font: 400 18px/1.5 var(--font-serif);
	color: var(--ink-85);
	max-width: 480px;
}

.nc-empty-state__form {
	max-width: 480px;
	margin-bottom: var(--space-4);
}

.nc-empty-state__form .nc-searchform {
	width: 100%;
}

.nc-empty-state__form .nc-searchform__input {
	width: auto;
	flex: 1;
	font-size: 13px;
	padding: 13px 14px;
}

.nc-empty-state .nc-filters {
	margin-left: 0;
	margin-right: 0;
}

/* -------------------------------------------------------------------------
   12. Comments
   ---------------------------------------------------------------------- */

.nc-comments {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--sidebar);
	gap: var(--space-7);
	padding: var(--space-6) var(--gutter) 0;
}

.nc-comments__main {
	max-width: var(--measure);
	min-width: 0;
}

.nc-comments__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-4);
	border-top: 1px solid var(--ink);
	padding-top: var(--space-3);
	margin-bottom: var(--space-4);
}

.nc-comments__note {
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-72);
}

.nc-comments__list,
.nc-comments__list .children {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-comments__list .children {
	margin-left: var(--space-5);
}

.nc-comment {
	padding: var(--space-3) 0;
	border-top: 1px solid var(--ink-25);
}

.nc-comment__body {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: var(--space-3);
}

.nc-comment__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0 0 var(--space-1);
	font: 400 10.5px/1.4 var(--font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
}

.nc-comment__date {
	color: var(--ink-72);
}

.nc-comment__text {
	font: 400 16px/1.55 var(--font-serif);
}

.nc-comment__text p {
	margin: 0 0 12px;
}

.nc-comment__pending {
	margin: 0 0 var(--space-1);
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--buoy-text);
}

.nc-comment__reply {
	margin: var(--space-1) 0 0;
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
}

.nc-comment__reply a {
	text-decoration: none;
	border-bottom: 1px solid var(--buoy);
	padding-bottom: 2px;
}

.nc-comments__form-title {
	margin: var(--space-5) 0 var(--space-3);
	font: 300 26px/1.2 var(--font-serif);
}

.comment-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 var(--space-3);
}

.comment-form > p {
	grid-column: 1 / -1;
}

.comment-form > .nc-form__field--half {
	grid-column: auto;
}

.comment-form .form-submit {
	margin-top: var(--space-1);
}

.comment-form input[type="submit"] {
	background: var(--ink);
	color: var(--paper);
	border: 0;
	padding: 15px 22px;
	font: 500 11px/1 var(--font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
	cursor: pointer;
	width: auto;
}

.comment-form input[type="submit"]:hover {
	background: var(--buoy);
}

.comment-form .comment-form-cookies-consent {
	display: flex;
	align-items: center;
	gap: var(--space-1);
	font: 400 12px/1.5 var(--font-mono);
	color: var(--ink-72);
}

.comment-form .comment-form-cookies-consent input {
	width: 16px;
	height: 16px;
	flex: none;
	accent-color: var(--ink);
}

.comment-form .comment-form-cookies-consent label {
	margin: 0;
	font: inherit;
	letter-spacing: 0;
	text-transform: none;
	color: inherit;
}

.comment-respond .logged-in-as,
.comment-respond .comment-notes {
	font: 400 12px/1.6 var(--font-mono);
	color: var(--ink-72);
}

.nc-comments__closed {
	font: 400 12px/1.6 var(--font-mono);
	color: var(--ink-72);
}

.comment-reply-title small {
	margin-left: var(--space-2);
	font: 400 10px/1 var(--font-mono);
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* -------------------------------------------------------------------------
   13. Footer
   ---------------------------------------------------------------------- */

.nc-footer {
	background: var(--ink);
	color: var(--paper);
	margin-top: var(--space-7);
}

.nc-footer a {
	color: var(--paper-85);
	text-decoration: none;
}

.nc-footer a:hover {
	color: var(--buoy-on-ink);
}

.nc-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 30px;
	padding: 34px var(--gutter);
}

.nc-footer__wordmark {
	display: block;
	font: italic 300 36px/1 var(--font-serif);
}

.nc-footer__descriptor {
	display: block;
	margin-top: 4px;
	font: 400 9px/1 var(--font-mono);
	letter-spacing: .42em;
	text-transform: uppercase;
	color: var(--paper-75);
}

.nc-footer__tagline {
	margin: var(--space-3) 0 0;
	font: 400 13px/1.55 var(--font-serif);
	color: var(--paper-75);
	max-width: 320px;
}

.nc-footer__heading {
	margin: 0 0 var(--space-1);
	font: 400 10px/1.4 var(--font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--buoy-on-ink);
}

.nc-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	font: 400 11px/2.2 var(--font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
}

.nc-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--space-3);
	margin: 0 var(--gutter);
	padding: 16px 0 22px;
	border-top: 1px solid var(--paper-20);
	font: 400 9.5px/1.6 var(--font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--paper-75);
}

.nc-footer__legal-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nc-footer__legal-list li + li::before {
	content: "\00B7";
	margin-right: var(--space-2);
	color: var(--paper-60);
}

/* -------------------------------------------------------------------------
   14. Ad slots
   ---------------------------------------------------------------------- */

.nc-ad {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--nc-ad-h, 90px);
	overflow: hidden;
}

.nc-ad--placeholder {
	border: 1px dashed var(--ink-50);
	text-align: center;
}

.nc-ad__label {
	font: 400 10px/1.6 var(--font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ink-72);
	padding: var(--space-1);
}

.nc-ad-wrap--header {
	margin: var(--space-4) var(--gutter) 0;
}

.nc-ad--in-article-1,
.nc-ad--in-article-2 {
	margin: var(--space-5) 0;
	max-width: var(--measure);
}

.nc-ad--mobile-anchor {
	min-height: 50px;
}

.nc-anchor {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	background: var(--paper);
	border-top: 1px solid var(--ink);
	padding: 4px;
}

/* -------------------------------------------------------------------------
   15. Responsive
   ---------------------------------------------------------------------- */

@media (max-width: 1279px) {
	.nc-page {
		max-width: 100%;
	}
}

@media (max-width: 1023px) {
	:root {
		--gutter: 24px;
	}

	.nc-nav,
	.nc-header .nc-searchform {
		display: none;
	}

	.nc-header {
		padding: 14px var(--gutter);
	}

	.nc-header__controls {
		display: flex;
	}

	.nc-brand__name {
		font-size: 26px;
	}

	.nc-brand__descriptor {
		font-size: 7px;
		letter-spacing: .4em;
	}

	.nc-mark {
		width: 36px;
		height: 36px;
	}

	.nc-mark .nc-mark__dot {
		width: 6px;
		height: 6px;
	}

	/* One column everywhere the design pairs a body with the margin. */
	.nc-body,
	.nc-directions,
	.nc-notices,
	.nc-comments {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-5);
	}

	.nc-body__main,
	.nc-comments__main {
		max-width: none;
	}

	.nc-prose > *,
	.nc-table-scroll,
	.nc-faq,
	.nc-ad--in-article-1,
	.nc-ad--in-article-2 {
		max-width: none;
	}

	/* Sidebar order below the article: newsletter, Start here, mobile ad. */
	.nc-sidebar {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
		gap: var(--space-4);
		align-items: start;
	}

	.nc-sidebar__item--newsletter { order: 1; }
	.nc-sidebar__item--start,
	.nc-sidebar__item--conditions { order: 2; }
	.nc-sidebar__item--approaches { order: 3; }
	.nc-sidebar__item--widgets { order: 4; }
	.nc-sidebar__item--mobilead { order: 5; display: block; }

	/* The header leaderboard and the desktop rectangle both give way to the
	   mobile unit, and the sticky half-page is dropped entirely. */
	.nc-ad-wrap--header,
	.nc-sidebar__item--ad1,
	.nc-sidebar__sticky-wrap {
		display: none;
	}

	.nc-anchor {
		display: block;
	}

	body.nc-has-anchor-ad {
		padding-bottom: var(--ad-anchor);
	}

	/* Table of contents becomes a disclosure. */
	.nc-toc__toggle {
		display: inline-flex;
	}

	.nc-toc__list {
		grid-template-columns: 1fr;
		display: none;
	}

	.nc-toc.is-open .nc-toc__list {
		display: grid;
	}

	.nc-hero {
		height: 520px;
	}

	.nc-archive__header {
		grid-template-columns: 1fr;
		gap: var(--space-3);
	}

	.nc-archive__headmeta {
		text-align: left;
	}

	.nc-featured {
		grid-template-columns: 1fr;
	}

	.nc-featured__media {
		height: 260px;
		border-right: 0;
		border-bottom: 1px solid var(--ink);
	}

	.nc-sheets {
		grid-template-columns: repeat(2, 1fr);
	}

	.nc-cards {
		grid-template-columns: 1fr;
	}

	.nc-guide__figure img {
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 599px) {
	:root {
		--gutter: 16px;
	}

	/* Hero: the mobile chart composition replaces the desktop one entirely,
	   on a 60px grid, so nothing is drawn behind the headline. */
	.nc-hero {
		height: 420px;
		background-size: 60px 60px;
	}

	.nc-chart__art--hero {
		display: none;
	}

	.nc-chart__art--mobile {
		display: block;
	}

	.nc-hero__text {
		top: 28px;
		width: auto;
		right: var(--gutter);
		max-width: none;
	}

	.nc-hero__kicker {
		font-size: 9px;
	}

	.nc-hero__title {
		margin: 12px 0;
		font-size: 40px;
		line-height: 1.02;
	}

	.nc-hero__title--404 {
		font-size: 44px;
	}

	.nc-hero__lead {
		margin-bottom: 18px;
		font-size: 15px;
		line-height: 1.5;
		max-width: 300px;
	}

	/* One call to action on a 390px hero, as the comp shows. */
	.nc-hero .nc-btn--secondary {
		display: none;
	}

	.nc-hero--404 .nc-btn--secondary {
		display: inline-flex;
	}

	.nc-legend {
		display: none;
	}

	.nc-topbar__inner {
		flex-direction: column;
		gap: 4px;
		padding: 8px var(--gutter);
		font-size: 8.5px;
		letter-spacing: .1em;
	}

	.nc-guide__title,
	.nc-page-doc__title {
		font-size: 32px;
		line-height: 1.08;
	}

	.nc-archive__title {
		font-size: 36px;
		line-height: 1.05;
	}

	.nc-search__title,
	.nc-empty-state__title {
		font-size: 30px;
		line-height: 1.1;
	}

	.nc-guide__deck,
	.nc-page-doc__deck {
		font-size: 16px;
		line-height: 1.45;
	}

	.nc-prose,
	.nc-prose p {
		font-size: 16.5px;
		line-height: 1.6;
	}

	.nc-prose h2,
	.nc-directions__title,
	.nc-index__title {
		font-size: 26px;
		line-height: 1.15;
	}

	.nc-prose h3 {
		font-size: 20px;
	}

	.nc-row {
		grid-template-columns: 40px 1fr auto;
		gap: var(--space-2);
	}

	.nc-row__title {
		font-size: 20px;
	}

	.nc-arow {
		grid-template-columns: 40px 1fr;
		gap: var(--space-2);
	}

	.nc-arow__media {
		display: none;
	}

	.nc-arow__title {
		font-size: 19px;
	}

	.nc-notice {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.nc-sheets {
		grid-template-columns: 1fr;
	}

	.nc-sheet__title {
		margin-top: 22px;
		font-size: 24px;
	}

	.nc-index__head,
	.nc-related__head,
	.nc-notices__head,
	.nc-comments__head {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--space-2);
	}

	.nc-index__count {
		text-align: left;
	}

	.nc-byline {
		font-size: 9.5px;
		gap: var(--space-1);
	}

	.nc-byline__time {
		margin-left: 0;
		width: 100%;
	}

	.nc-sources {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.nc-author {
		grid-template-columns: 56px 1fr;
		gap: var(--space-3);
	}

	.nc-avatar--author {
		width: 56px;
		height: 56px;
		font-size: 18px;
	}

	.nc-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.nc-footer__brand {
		grid-column: 1 / -1;
	}

	.nc-prose .is-style-nc-callout,
	.nc-prose .is-style-nc-callout > .wp-block-group__inner-container,
	.nc-prose .is-style-nc-verdict,
	.nc-prose .is-style-nc-verdict > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
		gap: var(--space-2);
	}

	.nc-prose .is-style-nc-verdict p {
		font-size: 20px;
	}

	.comment-form {
		grid-template-columns: 1fr;
	}

	.nc-overlay__list a {
		font-size: 22px;
	}

	/* ---------------------------------------------------------------------
	   Touch targets.
	   Controls grow to 44px outright. Small inline-ish links keep the
	   designed type and rule but carry an invisible 44px-tall hit area, so
	   the chart's tight mono lists survive the requirement intact.
	   ------------------------------------------------------------------ */

	.nc-skip,
	.nc-brand,
	.nc-byline__author,
	.nc-linklist a,
	.nc-overlay__foot-list a,
	.nc-footer__list a,
	.nc-arow__title a,
	.nc-notice,
	.nc-comment__reply a {
		min-height: 44px;
	}

	.nc-footer__list a,
	.nc-overlay__foot-list a,
	.nc-arow__title a,
	.nc-comment__reply a {
		display: inline-flex;
		align-items: center;
	}

	/* Short words like "About" would otherwise leave a target narrower than
	   it is tall. The lists are left-aligned, so the extra width is unseen. */
	.nc-footer__list a,
	.nc-overlay__foot-list a,
	.nc-comment__reply a {
		min-width: 44px;
		justify-content: flex-start;
	}

	.nc-brand,
	.nc-byline__author,
	.nc-linklist a {
		align-items: center;
	}

	.nc-btn,
	.nc-searchform__input,
	.nc-searchform__submit,
	.comment-form input[type="submit"],
	input[type="text"],
	input[type="email"],
	input[type="url"],
	input[type="search"],
	input[type="number"] {
		min-height: 44px;
	}

	.nc-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.nc-btn--block {
		display: flex;
	}

	.nc-searchform__submit {
		min-width: 52px;
	}

	.nc-toc__toggle,
	.nc-overlay__close,
	.nc-burger {
		min-width: 44px;
		min-height: 44px;
	}

	.nc-pagination a,
	.nc-pagination span.page-numbers {
		min-width: 44px;
		height: 44px;
	}

	.nc-chip,
	.nc-textlink {
		position: relative;
	}

	.nc-chip::after,
	.nc-textlink::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 50%;
		height: 44px;
		transform: translateY(-50%);
	}

	.comment-form .comment-form-cookies-consent {
		position: relative;
		min-height: 44px;
	}

	.comment-form .comment-form-cookies-consent input {
		width: 24px;
		height: 24px;
	}
}

/* -------------------------------------------------------------------------
   Motion, print
   ---------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

@media print {
	.nc-topbar,
	.nc-nav,
	.nc-burger,
	.nc-overlay,
	.nc-sidebar,
	.nc-ad,
	.nc-anchor,
	.nc-related,
	.nc-comments,
	.nc-searchform {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
	}

	.nc-body {
		display: block;
	}
}
