/**
 * Whitetail Creek Digital site-specific styles.
 *
 * INTENTIONALLY UNLAYERED: plugin block CSS and WP global styles are
 * unlayered, and unlayered CSS always beats every @layer — so project
 * overrides must be unlayered too (they still beat the parent theme,
 * whose own files are layered). Block-default collisions are won by a
 * `body` prefix (specificity, not order). No !important, tokens only.
 *
 * Look: quiet editorial consultancy — generous space, forest/stone
 * environments, restrained copper accents, Poppins display over Inter body.
 */

/* ------------------------------------------------------------------
   Surface-aware accent
   ------------------------------------------------------------------
   Copper needs two values depending on what it sits on:
     #B78356 on light  — the brand accent
     #C08C5F on forest — 4.90:1, where #B78356 only reaches 4.38:1
   Components reference --wcd-accent and never a raw copper token, so the
   correct value is picked by surface rather than by author discipline.
   ------------------------------------------------------------------ */

body {
	--wcd-accent: var(--wp--preset--color--accent);
}

body :is(
	.has-contrast-background-color,
	.wcd-surface--dark,
	.site-header,
	.site-footer
) {
	--wcd-accent: var(--wp--preset--color--accent-on-dark);
}

/* Copper measures 3.05:1 on Stone White — it FAILS AA for small text on
   light. Small copper type uses this darkened ink (4.70:1) instead; pure
   copper stays for large text, rules, and non-text accents. */
body {
	--wcd-accent-ink: var(--wp--preset--color--accent-ink);
	--wcd-eyebrow-size: var(--wp--preset--font-size--eyebrow);
	--wcd-eyebrow-tracking: 0.16em;
}

body :is(.wcd-surface--dark, .site-header, .site-footer) {
	--wcd-accent-ink: var(--wp--preset--color--accent-on-dark);
}

/* ------------------------------------------------------------------
   Shared recipes
   ------------------------------------------------------------------ */

.wcd-eyebrow {
	color: var(--wcd-accent-ink);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wcd-eyebrow-size);
	font-weight: 500;
	letter-spacing: var(--wcd-eyebrow-tracking);
	text-transform: uppercase;
}

/* ------------------------------------------------------------------
   Site header — Forest Deep, per Figma WCD / Header (74:60)
   ------------------------------------------------------------------ */

body .site-header {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding-block: var(--wp--preset--spacing--50);
	padding-inline: var(--wp--preset--spacing--50);
}

body .site-header__inner {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
	width: 100%;
}

body .site-header .site-logo__image {
	display: block;
	height: auto;
	width: clamp(11rem, 18vw, 14.5rem);
}

/* The tagline already sits in the hero; repeating it in the header is noise. */
body .site-header .site-description {
	display: none;
}

body .site-header .site-nav__menu {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	gap: clamp(1.25rem, 2.4vw, 2.25rem);
}

body .site-header .site-nav__menu a {
	border-block-end: 2px solid transparent;
	color: var(--wp--preset--color--base);
	padding-block-end: 0.35rem;
	text-decoration: none;
	transition: border-color 160ms ease, color 160ms ease;
}

body .site-header .site-nav__menu a:hover,
body .site-header .site-nav__menu a:focus-visible {
	border-block-end-color: var(--wcd-accent);
}

body .site-header .site-nav__menu :is(.current-menu-item, .current-menu-ancestor) > a {
	border-block-end-color: var(--wcd-accent);
	color: var(--wcd-accent);
}

body .site-header .site-nav__toggle {
	color: var(--wp--preset--color--base);
}

/* ------------------------------------------------------------------
   Site footer — Forest Deep editorial, per Figma WCD / Footer (75:75)
   ------------------------------------------------------------------ */

body .site-footer {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding-block: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50);
	padding-inline: var(--wp--preset--spacing--50);
}

body .site-footer__grid,
body .site-footer__legal {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
	width: 100%;
}

body .site-footer__logo {
	display: block;
	height: auto;
	margin-block-end: var(--wp--preset--spacing--50);
	width: clamp(11rem, 18vw, 14.5rem);
}

/* The footer statement is the tagline, set large — it is the closing note,
   not a caption, so it takes display type. */
body .site-footer__tagline {
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.25;
	margin: 0;
	max-width: 20ch;
}

body .site-footer__column :is(.wp-block-heading, .widget-title, h2, h3) {
	color: var(--wcd-accent);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wcd-eyebrow-size);
	font-weight: 500;
	letter-spacing: var(--wcd-eyebrow-tracking);
	margin-block-end: var(--wp--preset--spacing--40);
	text-transform: uppercase;
}

body .site-footer__column :is(ul, ol) {
	list-style: none;
	margin: 0;
	padding: 0;
}

body .site-footer__column li + li {
	margin-block-start: var(--wp--preset--spacing--30);
}

body .site-footer :is(.site-footer__column, .site-footer__legal) a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

body .site-footer :is(.site-footer__column, .site-footer__legal) a:hover,
body .site-footer :is(.site-footer__column, .site-footer__legal) a:focus-visible {
	color: var(--wcd-accent);
}

body .site-footer__legal {
	border-block-start: 1px solid rgb(246 247 244 / 0.16);
	font-size: var(--wp--preset--font-size--small);
	margin-block-start: var(--wp--preset--spacing--70);
	padding-block-start: var(--wp--preset--spacing--50);
}

body .site-footer__copyright {
	color: rgb(246 247 244 / 0.66);
	margin: 0;
}

body .site-footer__menu {
	gap: var(--wp--preset--spacing--50);
}

/* ------------------------------------------------------------------
   Focus
   ------------------------------------------------------------------ */

body :focus-visible {
	outline: 2px solid var(--wcd-accent);
	outline-offset: 3px;
}

/* ------------------------------------------------------------------
   Holding page (page-templates/holding.php)
   ------------------------------------------------------------------
   Pre-launch only. Deliberately quiet: a lockup with a status set
   against it, one statement, an optional countdown, one address. No
   nav, no CTA button, no urgency — the brand's whole position is that
   it does not push.

   Everything sits on Forest Deep in four fixed layers, painted back
   to front:

     0  .wcd-holding__media   optional photograph or loop, plus the
                              scrim that protects the type over it
     1  .wcd-creek            the drawn topographic field
     2  body::before/::after  grain, then vignette and horizon
     3  .wcd-holding__frame   the content plate

   Layers 0 and 2 are atmosphere; take either away and the page is
   still finished. Layer 0 is absent today.
   ------------------------------------------------------------------ */

body.wcd-holding {
	/* The surface switch near the top of this file is `body :is(…)`, a
	   DESCENDANT selector — and this template puts .wcd-surface--dark on
	   <body> itself, which that selector cannot match. Without this the
	   page fell back to the light-surface coppers, and the eyebrow rendered
	   #856A49 at 2.85:1 on Forest Deep: an AA failure. Re-declared here
	   rather than loosening the shared selector, because every other
	   surface in the site genuinely is a descendant of body. */
	--wcd-accent: var(--wp--preset--color--accent-on-dark);
	--wcd-accent-ink: var(--wp--preset--color--accent-on-dark);

	/* Hairlines and quiet text are token-derived, not literal greys, so a
	   palette change carries. Measured against Forest Deep:
	     ink-quiet  6.06:1  (legal, captions — AA at any size)
	     ink-body   8.69:1  (lead paragraph) */
	--wcd-rule: color-mix(in srgb, var(--wp--preset--color--base) 14%, transparent);
	--wcd-rule-soft: color-mix(in srgb, var(--wp--preset--color--base) 9%, transparent);
	--wcd-ink-body: color-mix(in srgb, var(--wp--preset--color--base) 78%, var(--wp--preset--color--contrast));
	--wcd-ink-quiet: color-mix(in srgb, var(--wp--preset--color--base) 62%, var(--wp--preset--color--contrast));

	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	margin: 0;
	min-block-size: 100svh;
	overflow-x: hidden;
	position: relative;
}

/* Copper on Forest Deep is 4.90:1 against Stone White text — legible as a
   selection, and the one warm note the page allows itself. */
body.wcd-holding ::selection {
	background-color: var(--wp--preset--color--accent-on-dark);
	color: var(--wp--preset--color--contrast);
}

/* ---- Layer 0: the optional backdrop ----------------------------------
   Renders only when Site Settings → Branding → Holding backdrop is set.
   The scrim runs from 96% Forest Deep at the top left, under the lockup
   and the statement, to 58% at the lower right, where only linework sits
   — so the photograph is genuinely present in the open half of the
   composition and genuinely suppressed under the type.

   Verified against two generated test backdrops rather than assumed. With
   a deliberately hostile one — blown specular highlights driven straight
   through the headline area — Stone White still measures 11.7:1 mean and
   5.85:1 against the single brightest pixel behind the statement; with a
   realistically dark backdrop, 12.6:1 mean and 7.3:1 worst. AA wants 4.5.
   The reference figure of 13.4:1 is flat Forest Deep with nothing on it,
   which no layer of this page ever offers — the drawn field alone already
   costs the worst pixel down to 7.2:1.

   This gradient pair is the knob. If a licensed still turns out lighter
   than it looked in the library, raise these percentages rather than
   retouching the asset.
   --------------------------------------------------------------------- */

.wcd-holding__media {
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	position: fixed;
	z-index: 0;
}

.wcd-holding__media-asset {
	block-size: 100%;
	display: block;
	inline-size: 100%;
	object-fit: cover;
	/* Weight toward the lower right, the half the composition leaves open. */
	object-position: 68% 60%;
}

.wcd-holding__media::after {
	background-image:
		/* Masthead band. The diagonal below runs to the bottom RIGHT, so it
		   only reaches ~80% coverage at the top right — exactly where the
		   status eyebrow sits. Measured over the creek loop, the eyebrow came
		   out at 4.17:1, under the 4.5 AA floor for small text. This band
		   protects the masthead row without darkening the open lower right.
		   Re-measure if the backdrop is ever swapped: a brighter asset needs
		   a higher first stop. */
		linear-gradient(
			to bottom,
			color-mix(in srgb, var(--wp--preset--color--contrast) 95%, transparent) 0%,
			color-mix(in srgb, var(--wp--preset--color--contrast) 82%, transparent) 14%,
			transparent 30%
		),
		linear-gradient(
			to bottom right,
			color-mix(in srgb, var(--wp--preset--color--contrast) 96%, transparent) 0%,
			color-mix(in srgb, var(--wp--preset--color--contrast) 80%, transparent) 46%,
			color-mix(in srgb, var(--wp--preset--color--contrast) 58%, transparent) 100%
		),
		linear-gradient(
			to top,
			color-mix(in srgb, var(--wp--preset--color--contrast) 88%, transparent) 0%,
			transparent 38%
		);
	content: "";
	inset: 0;
	position: absolute;
}

/* With a photograph behind it the drawn field is a second voice, not the
   subject — it steps back rather than competing. */
body.wcd-holding--media .wcd-creek {
	opacity: 0.62;
}

/* ---- Layer 1: the creek field ---------------------------------------
   Paths MUST be fill:none — an SVG path with no fill defaults to solid
   black, which turns these into full-viewport blobs. Strokes reference
   tokens so a palette change carries.
   --------------------------------------------------------------------- */

.wcd-creek {
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	position: fixed;
	z-index: 1;
}

.wcd-creek__svg {
	block-size: 100%;
	display: block;
	inline-size: 100%;
}

.wcd-creek :is(path, use) {
	fill: none;
	stroke-linecap: round;
}

/* Depth is carried by weight and opacity, not by colour temperature: moss
   for the distance, sage as the ground comes forward. Moss is 2.69:1 on
   Forest Deep and sage 4.28:1 — decorative-only values, correct for
   linework and never used for type. */
.wcd-creek__ring       { opacity: 0.3;  stroke: var(--wp--preset--color--moss); stroke-width: 0.9; }
.wcd-creek__line--far  { opacity: 0.34; stroke: var(--wp--preset--color--moss); stroke-width: 0.8; }
.wcd-creek__line--mid  { opacity: 0.44; stroke: var(--wp--preset--color--moss); stroke-width: 1; }
.wcd-creek__line--trib { opacity: 0.32; stroke: var(--wp--preset--color--sage); stroke-width: 0.9; }
.wcd-creek__line--bank { opacity: 0.56; stroke: var(--wp--preset--color--sage); stroke-width: 1.15; }
.wcd-creek__line--near { opacity: 0.6;  stroke: var(--wp--preset--color--sage); stroke-width: 1.3; }

/* One copper thread down the channel. The only warm line in the drawing. */
.wcd-creek__line--copper {
	opacity: 0.5;
	stroke: var(--wp--preset--color--accent-on-dark);
	stroke-width: 1;
}

/* ---- Motion ----------------------------------------------------------
   Two mechanisms, because a single whole-field drift is invisible: an
   earlier pass moved at 0.26px/sec, technically animating and perceptually
   static.

     1. parallax — each depth tier drifts at its own rate, so the field has
        somewhere to move *through*. Amplitudes below are peak to peak in
        user units, which are 1:1 with px at a 1440px-wide viewport; the
        near tier therefore travels 128px over its 44s half-cycle.
        Cross-correlated between rendered frames at 1440x900: far 0.17px/s,
        mid 0.71px/s, near 1.78px/s averaged over the first 29.5s.
     2. glints — a long bright dash travelling each foreground line. The
        dash pattern is 2400 units and the offset covers all of it once per
        cycle, so at 1440px wide the glints run at 2400/duration: 34 to
        51px/sec. This is the motion a visitor actually registers as
        current. Staggered durations so they never march in lockstep.

   Measured on the live page at 1440x900: 37,303 pixels change by more than
   4/255 in 5.5 seconds. Under prefers-reduced-motion the same interval,
   sampled 19 seconds apart, changes exactly 0 pixels.

   The glints are duplicated paths, not <use> references: Chrome resolves a
   use-clone's style from the original element, so a stroke-dasharray set on
   the <use> never reaches the clone and the glint silently never appears.
   --------------------------------------------------------------------- */

@keyframes wcd-drift-far  { from { transform: translate(-16px, 8px); }  to { transform: translate(16px, -8px); } }
@keyframes wcd-drift-mid  { from { transform: translate(-30px, 14px); } to { transform: translate(30px, -14px); } }
@keyframes wcd-drift-bank { from { transform: translate(-46px, 20px); } to { transform: translate(46px, -20px); } }
@keyframes wcd-drift-near { from { transform: translate(-64px, 26px); } to { transform: translate(64px, -26px); } }

.wcd-creek__rings,
.wcd-creek__tier--far  { animation: wcd-drift-far 92s ease-in-out infinite alternate; }
.wcd-creek__tier--mid  { animation: wcd-drift-mid 76s ease-in-out infinite alternate; }
.wcd-creek__tier--bank { animation: wcd-drift-bank 58s ease-in-out infinite alternate; }
.wcd-creek__tier--near,
.wcd-creek__glints     { animation: wcd-drift-near 44s ease-in-out infinite alternate; }

/* The dash travels the full 2400-unit pattern, so the loop is seamless. */
@keyframes wcd-glint { from { stroke-dashoffset: 2400; } to { stroke-dashoffset: 0; } }

.wcd-creek__glint {
	animation: wcd-glint 58s linear infinite;
	opacity: 0.42;
	stroke: var(--wp--preset--color--base);
	stroke-dasharray: 400 2000;
	stroke-width: 1.5;
}

.wcd-creek__glint--copper {
	opacity: 0.6;
	stroke: var(--wp--preset--color--accent-on-dark);
}

.wcd-creek__glint:nth-of-type(1) { animation-duration: 58s; animation-delay: -6s; }
.wcd-creek__glint:nth-of-type(2) { animation-duration: 47s; animation-delay: -22s; }
.wcd-creek__glint:nth-of-type(3) { animation-duration: 66s; animation-delay: -11s; }
.wcd-creek__glint:nth-of-type(4) { animation-duration: 52s; animation-delay: -34s; }
.wcd-creek__glint:nth-of-type(5) { animation-duration: 71s; animation-delay: -40s; }

/* preserveAspectRatio="slice" crops a phone down to roughly the middle 420
   units of the 1440-unit canvas, so it sees a fraction of the density the
   desktop composition has. The remaining lines are allowed more weight
   there to compensate. */
@media (max-width: 47.9375rem) {
	.wcd-creek__ring       { opacity: 0.38; }
	.wcd-creek__line--far  { opacity: 0.42; }
	.wcd-creek__line--mid  { opacity: 0.54; }
	.wcd-creek__line--trib { opacity: 0.4; }
	.wcd-creek__line--bank { opacity: 0.66; }
	.wcd-creek__line--near { opacity: 0.7; }
}

/* ---- Layer 2: grain and vignette ------------------------------------
   Two fixed pseudo-elements. The grain is a 160px tile of SVG fractal
   noise, desaturated in the filter and laid down at 3.5% — not visible as
   texture, only as the absence of a perfectly flat field. The vignette
   settles the corners and sinks the foot of the page so the legal line has
   somewhere to sit.
   --------------------------------------------------------------------- */

body.wcd-holding::before,
body.wcd-holding::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: fixed;
}

body.wcd-holding::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 160px 160px;
	opacity: 0.035;
	z-index: 2;
}

body.wcd-holding::after {
	background-image:
		radial-gradient(
			135% 115% at 42% 44%,
			transparent 56%,
			color-mix(in srgb, var(--wp--preset--color--contrast) 42%, transparent) 100%
		),
		linear-gradient(
			to top,
			color-mix(in srgb, var(--wp--preset--color--contrast) 55%, transparent) 0%,
			transparent 22%
		);
	z-index: 2;
}

/* ---- Layer 3: the content plate --------------------------------------
   A masthead rule and a legal rule, both spanning the full plate. They are
   what stop the page reading as three things floating in a void: the type
   sits inside a measured field, and the empty right-hand half becomes part
   of the composition rather than a gap.
   --------------------------------------------------------------------- */

.wcd-holding__frame {
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	max-inline-size: 84rem;
	min-block-size: 100svh;
	padding-inline: clamp(1.25rem, 5vw, 4.5rem);
	position: relative;
	inline-size: 100%;
	z-index: 3;
}

.wcd-holding__masthead {
	align-items: baseline;
	border-block-end: 1px solid var(--wcd-rule-soft);
	column-gap: var(--wp--preset--spacing--50);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	row-gap: var(--wp--preset--spacing--40);
}

.wcd-holding__logo {
	block-size: auto;
	inline-size: clamp(10rem, 19vw, 14.5rem);
}

/* The status reads as a marker, so it gets a marker: a short copper rule
   leading into it, optically centred on the cap height rather than the
   line box. */
.wcd-holding__status {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	margin: 0;
	/* Nudge the tracked caps back onto the lockup's optical baseline. */
	transform: translateY(-0.15em);
}

.wcd-holding__status::before {
	background-color: var(--wcd-accent);
	block-size: 1px;
	content: "";
	flex: none;
	inline-size: 2.25rem;
	opacity: 0.7;
}

/* Below ~40rem the lockup and the status cannot share a line without the
   status running off the edge, so the masthead stacks rather than shrinking
   either one. */
@media (max-width: 40rem) {
	.wcd-holding__masthead {
		align-items: flex-start;
		flex-direction: column;
	}

	.wcd-holding__status {
		transform: none;
	}
}

.wcd-holding__inner {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	max-inline-size: 46rem;
	/* Weighted so the statement sits just above true centre — optically
	   centred, which reads as deliberate where mathematically centred
	   reads as low. */
	padding-block: clamp(2.5rem, 9vh, 6rem) clamp(4.5rem, 18vh, 11rem);
	inline-size: 100%;
}

/* A short copper index rule opening the statement. Drawn on the container
   rather than added to the markup, so the editor stays free of furniture. */
.wcd-holding__body::before {
	background-color: var(--wcd-accent);
	block-size: 1px;
	content: "";
	display: block;
	inline-size: 3.5rem;
	margin-block-end: var(--wp--preset--spacing--50);
}

/* The statement. Display type, but restrained — no oversized hero shout.
 *
 * Not the `display` preset: its 2.75rem floor overflows a 320px viewport,
 * because "measurement." cannot break and runs past the padding. This
 * clamp drops to 2.05rem at the small end, and its rem+vw slope keeps the
 * statement growing past 1440 instead of freezing, so it does not look
 * marooned on a 2560 display. */
.wcd-holding__body :is(h1, h2) {
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.05rem, 1.15rem + 3.05vw, 4.35rem);
	font-weight: 500;
	letter-spacing: -0.024em;
	line-height: 1.08;
	margin: 0;
	max-inline-size: 17ch;
	text-wrap: balance;
}

.wcd-holding__body p {
	color: var(--wcd-ink-body);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	margin: var(--wp--preset--spacing--50) 0 0;
	max-inline-size: 46ch;
}

/* ---- Countdown ------------------------------------------------------
   Renders only when a launch date is set. Quiet by design: tracked
   labels, display numerals, hairline rule. No flip cards, no red. */

.wcd-countdown {
	border-block-start: 1px solid var(--wcd-rule);
	margin-block-start: var(--wp--preset--spacing--70);
	padding-block-start: var(--wp--preset--spacing--50);
}

.wcd-countdown__label {
	margin: 0 0 var(--wp--preset--spacing--40);
}

.wcd-countdown__date {
	color: var(--wcd-ink-body);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	margin: 0;
}

.wcd-countdown__units {
	display: flex;
	gap: clamp(1.75rem, 5vw, 3.5rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.wcd-countdown__value {
	color: var(--wp--preset--color--base);
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-variant-numeric: tabular-nums;
	font-weight: 500;
	line-height: 1;
}

.wcd-countdown__caption {
	color: var(--wcd-ink-quiet);
	display: block;
	font-size: var(--wcd-eyebrow-size);
	letter-spacing: var(--wcd-eyebrow-tracking);
	margin-block-start: var(--wp--preset--spacing--30);
	text-transform: uppercase;
}

.wcd-holding__contact {
	margin-block-start: var(--wp--preset--spacing--60);
}

.wcd-holding__contact a {
	border-block-end: 1px solid var(--wcd-rule);
	color: var(--wcd-accent);
	font-family: var(--wp--preset--font-family--display);
	display: inline-block;
	padding-block-end: 0.25rem;
	text-decoration: none;
	transition: border-color 180ms ease;
}

.wcd-holding__contact a:hover,
.wcd-holding__contact a:focus-visible {
	border-block-end-color: var(--wcd-accent);
}

.wcd-holding__legal {
	border-block-start: 1px solid var(--wcd-rule-soft);
	padding-block: var(--wp--preset--spacing--50);
	inline-size: 100%;
}

.wcd-holding__legal p {
	color: var(--wcd-ink-quiet);
	font-size: var(--wp--preset--font-size--small);
	margin: 0;
}

/* ---- Reduced motion --------------------------------------------------
   Everything stops: the parallax, the glints, and the backdrop loop (the
   video carries no autoplay attribute and the inline script refuses to
   start it — see holding.php). */

@media (prefers-reduced-motion: reduce) {
	body.wcd-holding *,
	body.wcd-holding *::before,
	body.wcd-holding *::after {
		animation: none;
		transition: none;
	}

	/* Without motion the dashed overlay would read as broken lines. */
	.wcd-creek__glint {
		display: none;
	}
}
