/* 4TN League — site design system (sections, header, footer, 4TN Page template, registration pages).
 *
 * Built from the Game-Time posts: black-and-white photography washed in bold duotones, heavy grain,
 * Anton headlines with a printed texture, square edges, and the white schedule rows as the one
 * rounded shape. Colour comes from CSS variables printed in <head> by the plugin (Palette):
 *   --fourtn-week (+ -ink, -text)  Colour of the Week: Register block, buttons, highlights
 *   --fourtn-sun / --fourtn-thu    Division colours (Sunday Coral, Thursday Periwinkle)
 *   --c / --c-ink / --c-text       A component's own colour, set inline per section
 * Everything is scoped to fourtn- classes so nothing leaks into the theme or Elementor.
 */

@font-face {
	font-family: "Fourtn Display";
	src: url("../site/fonts/anton-regular.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--fourtn-ink: #0a0a0b;
	--fourtn-ink-2: #121214;
	--fourtn-ink-3: #1c1c1f;
	--fourtn-text: #f5f5f7;
	--fourtn-dim: #a1a1a6;
	--fourtn-line: rgba(255, 255, 255, 0.12);
	--fourtn-paper: #f5f5f2;
	--fourtn-gutter: clamp(20px, 5vw, 64px);
	--fourtn-max: 1280px;
	--fourtn-hdr: 60px;
	--fourtn-row-r: 14px;
	--fourtn-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--fourtn-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
	--fourtn-display: "Fourtn Display", "Helvetica Neue", Impact, "Arial Narrow", sans-serif;
	--fourtn-grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.1 -.35'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	--fourtn-print: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='1' stitchTiles='stitch'/><feComponentTransfer><feFuncA type='table' tableValues='0.7 1 1 1'/></feComponentTransfer><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

@media (min-width: 900px) {
	:root {
		--fourtn-hdr: 72px;
	}
}

/* Short names with fallbacks, in case the palette <style> is missing. */
.fourtn-s,
.fourtn-hdr,
.fourtn-ftr,
body.fourtn-page {
	--wk: var(--fourtn-week, #E35D57);
	--wk-ink: var(--fourtn-week-ink, #0a0a0b);
	--wk-text: var(--fourtn-week-text, #E35D57);
	--sun: var(--fourtn-sun, #E35D57);
	--thu: var(--fourtn-thu, #8A8DF0);
}

/* ---------- Page canvas ---------- */
body.fourtn-site,
body.elementor-template-canvas:has(.fourtn-s) {
	margin: 0;
	background: var(--fourtn-ink);
	color: var(--fourtn-text);
	font-family: var(--fourtn-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

html:has(body.fourtn-site) {
	background: var(--fourtn-ink);
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--fourtn-hdr) + 16px);
}

.elementor-element[data-widget_type^="fourtn_"] {
	margin-block-end: 0 !important;
}

.fourtn-s,
.fourtn-hdr,
.fourtn-ftr {
	font-family: var(--fourtn-sans);
	color: var(--fourtn-text);
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
}

.fourtn-s *,
.fourtn-s *::before,
.fourtn-s *::after,
.fourtn-hdr *,
.fourtn-ftr * {
	box-sizing: border-box;
}

/* Reset with zero specificity so every component rule below wins. */
:where(.fourtn-s, .fourtn-hdr, .fourtn-ftr) :where(p, h1, h2, h3, h4, ul, ol, dl, dd, figure) {
	margin: 0;
	padding: 0;
}

.fourtn-s {
	position: relative;
	isolation: isolate;
	background: var(--fourtn-ink);
	overflow: clip;
}

/* Film grain: above photos and colour, below text. */
.fourtn-s::before,
.fourtn-strip::before,
.fourtn-path__media::before,
.fourtn-div::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-image: var(--fourtn-grain);
	background-size: 240px 240px;
	opacity: 0.1;
}

.fourtn-s > * {
	position: relative;
	z-index: 2;
}

.fourtn-wrap {
	width: min(var(--fourtn-max), 100% - 2 * var(--fourtn-gutter));
	margin-inline: auto;
}

.fourtn-s a:not(.fourtn-btn):not(.fourtn-row):not(.fourtn-follow__btn) {
	color: inherit;
}

.fourtn-s img,
.fourtn-s video {
	display: block;
	max-width: none;
}

/* Photos carry their own heavier grain (Settings → Site Look → Photo Finish). */
.fourtn-strip::before,
.fourtn-path__media::before {
	opacity: var(--fourtn-photo-grain, 0.2);
}

/* Soft Blur: a blurred copy of the photo fades in behind the words. */
.fourtn-s .fourtn-photo--blur {
	filter: grayscale(1) contrast(1.15) brightness(0.8) blur(16px);
	transform: scale(1.08);
}

.fourtn-fade-left {
	-webkit-mask-image: linear-gradient(90deg, #000 0%, #000 22%, transparent 62%);
	mask-image: linear-gradient(90deg, #000 0%, #000 22%, transparent 62%);
}

.fourtn-fade-bottom {
	-webkit-mask-image: linear-gradient(0deg, #000 0%, #000 18%, transparent 58%);
	mask-image: linear-gradient(0deg, #000 0%, #000 18%, transparent 58%);
}

/* ---------- Photography: black and white, washed in a duotone like the posts ---------- */
.fourtn-s .fourtn-photo,
.fourtn-hero__media img,
.fourtn-hero__media video {
	filter: grayscale(1) contrast(1.22) brightness(0.92);
}

.fourtn-duo {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: var(--c, var(--wk));
	mix-blend-mode: color;
}

/* ---------- Type ---------- */
.fourtn-s .fourtn-d,
.fourtn-hdr .fourtn-d {
	font-family: var(--fourtn-display);
	font-weight: 400;
	text-transform: uppercase;
	/* Anton's capitals are 0.86em tall: 0.92 keeps every line clear of the next and of any edge. */
	line-height: 0.92;
	letter-spacing: -0.012em;
	color: var(--fourtn-text);
	text-wrap: balance;
}

.fourtn-s .fourtn-h2 {
	font-size: calc(clamp(48px, 7.2vw, 116px) * var(--hs, 1));
}

.fourtn-s .fourtn-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wk-text);
}

.fourtn-s .fourtn-eyebrow::before {
	content: "";
	width: 28px;
	height: 3px;
	background: currentColor;
}

.fourtn-s .fourtn-lede {
	max-width: 36em;
	margin-top: 22px;
	font-size: clamp(18px, 1.45vw, 21px);
	line-height: 1.45;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--fourtn-dim);
	text-wrap: pretty;
}

.fourtn-s .fourtn-lede a,
.fourtn-s .fourtn-fine a {
	color: var(--fourtn-text);
	text-underline-offset: 3px;
	text-decoration-color: var(--wk);
	text-decoration-thickness: 2px;
}

.fourtn-s .fourtn-fine {
	margin-top: 28px;
	font-size: 15px;
	color: var(--fourtn-dim);
	max-width: 44em;
}

.fourtn-sh {
	margin-bottom: clamp(40px, 5vw, 72px);
}

.fourtn-sh--row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
}

.fourtn-sh--row > * {
	min-width: 0;
	max-width: 100%;
}

.fourtn-hl {
	color: var(--wk-text);
}

/* ---------- Buttons: square, condensed, with the 4TN arrow ---------- */
.fourtn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 56px;
	padding: 0 22px 0 24px;
	border: 2px solid transparent;
	border-radius: 0;
	font-family: var(--fourtn-display);
	font-size: 21px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.fourtn-arrow {
	flex: none;
	width: 18px;
	height: 18px;
	transition: transform 0.3s var(--fourtn-ease);
}

.fourtn-btn:hover .fourtn-arrow,
.fourtn-row:hover .fourtn-arrow,
.fourtn-hdr__cta:hover .fourtn-arrow {
	transform: translateX(5px);
}

.fourtn-btn:focus-visible,
.fourtn-s a:focus-visible,
.fourtn-hdr a:focus-visible,
.fourtn-hdr button:focus-visible,
.fourtn-ftr a:focus-visible,
.fourtn-s button:focus-visible,
.fourtn-q summary:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

a.fourtn-btn--primary {
	background: var(--wk);
	color: var(--wk-ink);
}

a.fourtn-btn--c {
	background: var(--c, var(--wk));
	color: var(--c-ink, var(--wk-ink));
}

a.fourtn-btn--primary:hover,
a.fourtn-btn--c:hover {
	background: #fff;
	color: var(--fourtn-ink);
}

a.fourtn-btn--ghost {
	border-color: #fff;
	color: #fff;
}

a.fourtn-btn--ghost:hover {
	background: #fff;
	color: var(--fourtn-ink);
}

/* On colour panels. */
a.fourtn-btn--ink {
	background: var(--c-ink, var(--fourtn-ink));
	color: var(--c, var(--wk));
}

a.fourtn-btn--ink:hover {
	background: transparent;
	border-color: var(--c-ink, var(--fourtn-ink));
	color: var(--c-ink, var(--fourtn-ink));
}

a.fourtn-btn--line {
	border-color: var(--c-ink, var(--fourtn-ink));
	color: var(--c-ink, var(--fourtn-ink));
}

a.fourtn-btn--line:hover {
	background: var(--c-ink, var(--fourtn-ink));
	color: var(--c, var(--wk));
}

.fourtn-btn--block {
	width: 100%;
	justify-content: space-between;
}

.fourtn-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 36px;
}

/* ---------- Header: solid ink bar, Register as a full-height colour block ---------- */
.fourtn-skip {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 2000;
	padding: 10px 16px;
	background: #fff;
	color: var(--fourtn-ink);
	font: 600 14px/1 var(--fourtn-sans);
}

.fourtn-skip:focus {
	left: 8px;
}

.fourtn-hdr {
	position: fixed;
	inset: 0 0 auto;
	z-index: 1000;
	background: var(--fourtn-ink);
	border-bottom: 1px solid var(--fourtn-line);
}

.admin-bar .fourtn-hdr {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .fourtn-hdr {
		top: 46px;
	}
}

.fourtn-hdr-space {
	height: var(--fourtn-hdr);
}

.fourtn-hdr__bar {
	display: flex;
	align-items: stretch;
	height: var(--fourtn-hdr);
	padding-left: var(--fourtn-gutter);
}

.fourtn-hdr__brand {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-right: auto;
	color: #fff;
	text-decoration: none;
}

.fourtn-hdr .fourtn-hdr__brand img {
	display: block;
	width: auto;
	max-width: none;
	height: 38px;
}

.fourtn-hdr__brand span {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fourtn-hdr__nav {
	display: none;
	align-items: center;
	gap: 34px;
	padding: 0 40px;
}

.fourtn-hdr__nav a {
	position: relative;
	padding: 8px 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.2s;
}

.fourtn-hdr__nav a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--wk);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--fourtn-ease);
}

.fourtn-hdr__nav a:hover {
	color: #fff;
}

.fourtn-hdr__nav a:hover::after {
	transform: scaleX(1);
}

.fourtn-hdr__cta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 18px;
	background: var(--wk);
	color: var(--wk-ink);
	text-decoration: none;
	transition: background-color 0.25s, color 0.25s;
}

.fourtn-hdr__cta:hover {
	background: #fff;
	color: var(--fourtn-ink);
}

.fourtn-hdr__cta-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--fourtn-display);
	font-size: 22px;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0.01em;
}

.fourtn-hdr__cta-label .fourtn-arrow {
	width: 15px;
	height: 15px;
}

.fourtn-hdr__cta-note {
	margin-top: 5px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fourtn-hdr__toggle {
	position: relative;
	width: 56px;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--fourtn-line);
	background: none;
	cursor: pointer;
}

.fourtn-hdr__toggle span {
	position: absolute;
	left: 17px;
	width: 22px;
	height: 2px;
	background: #fff;
	transition: transform 0.3s var(--fourtn-ease);
}

.fourtn-hdr__toggle span:first-child {
	top: calc(50% - 5px);
}

.fourtn-hdr__toggle span:last-child {
	top: calc(50% + 3px);
}

.fourtn-hdr.is-open .fourtn-hdr__toggle span:first-child {
	transform: translateY(4px) rotate(45deg);
}

.fourtn-hdr.is-open .fourtn-hdr__toggle span:last-child {
	transform: translateY(-4px) rotate(-45deg);
}

.fourtn-hdr__menu {
	height: calc(100vh - var(--fourtn-hdr));
	height: calc(100dvh - var(--fourtn-hdr));
	padding-top: 28px;
	background: var(--fourtn-ink);
	border-top: 1px solid var(--fourtn-line);
}

.fourtn-hdr__menu a {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid var(--fourtn-line);
	color: #fff;
	font-family: var(--fourtn-display);
	font-size: 48px;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
}

@media (min-width: 900px) {
	.fourtn-hdr__nav {
		display: flex;
	}
	.fourtn-hdr__toggle,
	.fourtn-hdr__menu {
		display: none !important;
	}
	.fourtn-hdr .fourtn-hdr__brand img {
		height: 44px;
	}
	.fourtn-hdr__cta {
		min-width: 200px;
		padding: 0 28px;
	}
	.fourtn-hdr__cta-label {
		font-size: 30px;
		gap: 12px;
	}
	.fourtn-hdr__cta-label .fourtn-arrow {
		width: 18px;
		height: 18px;
	}
	.fourtn-hdr__cta-note {
		font-size: 11px;
		margin-top: 6px;
	}
}

@media (max-width: 400px) {
	.fourtn-hdr__brand span {
		display: none;
	}
}

html.fourtn-menu-open {
	overflow: hidden;
}

/* ---------- Hero: a Game-Time poster ---------- */
.fourtn-hero {
	display: flex;
	min-height: calc(100vh - var(--fourtn-hdr));
	min-height: calc(100svh - var(--fourtn-hdr));
	padding: clamp(16px, 3vh, 32px) 0 clamp(24px, 5vh, 48px);
}

.fourtn-hero__media,
.fourtn-hero__shade {
	position: absolute !important;
	inset: 0;
	z-index: 0 !important;
}

.fourtn-hero__media {
	isolation: isolate;
}

.fourtn-hero__media img,
.fourtn-hero__media video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fourtn-hero__media video {
	opacity: 0;
	transition: opacity 1.2s ease;
}

.fourtn-hero__media video.is-playing {
	opacity: 1;
}

.fourtn-hero__shade {
	background:
		linear-gradient(180deg, rgba(10, 10, 11, 0.5) 0%, rgba(10, 10, 11, 0.15) 30%, rgba(10, 10, 11, 0.35) 60%, rgba(10, 10, 11, 0.92) 100%);
}

.fourtn-s.fourtn-hero::before {
	opacity: 0.16;
}

.fourtn-hero__inner {
	display: flex;
	flex-direction: column;
	container-type: inline-size;
}

.fourtn-meta {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

.fourtn-meta li + li::before {
	content: "·";
	margin: 0 0.9em;
	color: var(--wk-text);
}

/* Phones: just the first two items (the rest is in the rows and countdown anyway). */
@media (max-width: 699px) {
	.fourtn-meta li:nth-child(n + 3) {
		display: none;
	}
}

.fourtn-hero__title {
	margin-top: clamp(14px, 2.4vh, 24px) !important;
	/* ~40% smaller than before. Always fits: "REGISTRATION" is 5.03em wide, so 19cqi is the ceiling. */
	font-size: clamp(48px, 9vw, 150px);
	font-size: min(calc(150px * var(--hs, 1)), calc(12.2cqi * var(--hs, 1)), 19cqi);
}

.fourtn-s .fourtn-hero__title {
	line-height: 0.92;
}

/* Each headline row is its own line (Elementor: one line per row); long rows wrap, never crop. */
.fourtn-line,
.fourtn-line > span {
	display: block;
}

/* Phones: the headline wraps to two lines at a bigger size. */
@media (max-width: 699px) {
	.fourtn-hero__title {
		font-size: min(calc(96px * var(--hs, 1)), calc(19cqi * var(--hs, 1)), 19cqi);
	}
}

.fourtn-hero .fourtn-lede {
	margin-top: 18px;
	max-width: 30em;
	color: rgba(255, 255, 255, 0.86);
}

.fourtn-hero__grid {
	display: grid;
	gap: 28px;
	margin-top: auto;
	padding-top: clamp(28px, 5vh, 56px);
}

@media (min-width: 1000px) {
	.fourtn-hero__grid {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: end;
		gap: clamp(32px, 4vw, 64px);
	}
}

/* The countdown is the star: a scoreboard clock. */
.fourtn-hero__clock .fourtn-count__label {
	margin-bottom: 12px !important;
	font-size: 12px;
	color: var(--wk-text);
}

.fourtn-hero__clock .fourtn-count__units {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 6px;
}

.fourtn-hero__clock .fourtn-count__unit {
	min-width: 0;
	padding: 12px 10px 10px;
	background: rgba(10, 10, 11, 0.78);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2), inset 0 -4px 0 var(--wk);
}

.fourtn-hero__clock .fourtn-count__unit b {
	/* Two digits are ~1em wide in Anton; 16cqi keeps four units inside a phone screen. */
	font-size: min(calc(clamp(56px, 7.4vw, 112px) * var(--cs, 1)), 16cqi);
	line-height: 0.92;
}

.fourtn-hero__clock .fourtn-count__unit i {
	margin-top: 6px;
	font-size: 11px;
}

@media (min-width: 1000px) {
	.fourtn-hero__clock .fourtn-count__unit {
		min-width: calc(clamp(96px, 9vw, 150px) * var(--cs, 1));
		padding: 16px 14px 14px;
	}
}

/* Schedule rows: the white rows from the Game-Time posts, as the way in. */
.fourtn-rows {
	display: grid;
	gap: 8px;
}

a.fourtn-row {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	grid-template-areas: "tag name go" "tag spots go";
	align-items: center;
	column-gap: 14px;
	min-height: 64px;
	padding: 8px;
	border-radius: var(--fourtn-row-r);
	background: var(--fourtn-paper);
	color: var(--fourtn-ink);
	text-decoration: none;
	transition: transform 0.3s var(--fourtn-ease);
}

.fourtn-row__tag {
	grid-area: tag;
	display: grid;
	place-items: center;
	align-self: stretch;
	border-radius: 9px;
	background: var(--c, var(--wk));
	color: var(--c-ink, var(--wk-ink));
	font-family: var(--fourtn-display);
	font-size: 20px;
	line-height: 1;
}

.fourtn-row__name {
	grid-area: name;
	min-width: 0;
	font-family: var(--fourtn-display);
	font-size: 23px;
	line-height: 0.95;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.fourtn-row__spots {
	grid-area: spots;
	margin-top: 4px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #5a5a60;
}

.fourtn-row__spots b {
	font-weight: 800;
	color: var(--fourtn-ink);
}

.fourtn-row__go {
	grid-area: go;
	display: flex;
	align-items: center;
	gap: 8px;
	align-self: stretch;
	padding: 0 14px;
	border-radius: 9px;
	background: var(--fourtn-ink);
	color: #fff;
	font-family: var(--fourtn-display);
	font-size: 18px;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color 0.25s, color 0.25s;
}

.fourtn-row__go .fourtn-arrow {
	width: 14px;
	height: 14px;
}

a.fourtn-row:hover {
	transform: translateX(6px);
}

a.fourtn-row:hover .fourtn-row__go {
	background: var(--c, var(--wk));
	color: var(--c-ink, var(--wk-ink));
}

/* Phones: the row button is just the arrow, so full division names fit. */
@media (max-width: 699px) {
	.fourtn-row__go {
		justify-content: center;
		width: 48px;
		padding: 0;
		font-size: 0;
		gap: 0;
	}
	.fourtn-row__go .fourtn-arrow {
		width: 18px;
		height: 18px;
	}
	.fourtn-row__spots {
		line-height: 1.3;
	}
}

a.fourtn-row[data-state="full"] {
	opacity: 0.55;
	pointer-events: none;
}

@media (min-width: 700px) {
	a.fourtn-row {
		grid-template-columns: 72px minmax(0, 1fr) auto auto;
		grid-template-areas: "tag name spots go";
		column-gap: 18px;
		min-height: 68px;
	}
	.fourtn-row__tag {
		font-size: 24px;
	}
	.fourtn-row__name {
		font-size: 32px;
	}
	.fourtn-row__spots {
		margin-top: 0;
		text-align: right;
	}
	.fourtn-row__spots b {
		display: block;
		font-family: var(--fourtn-display);
		font-weight: 400;
		font-size: 28px;
		line-height: 0.9;
		letter-spacing: 0;
	}
	.fourtn-row__go {
		padding: 0 18px;
		font-size: 22px;
	}
}

/* Countdown. */
.fourtn-count__label {
	margin-bottom: 8px !important;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.fourtn-count__units {
	display: flex;
	gap: 6px;
}

.fourtn-count__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 64px;
	padding: 10px 8px 8px;
	background: rgba(10, 10, 11, 0.7);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}

.fourtn-count__unit b {
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: clamp(30px, 3vw, 40px);
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: #fff;
}

.fourtn-count__unit i {
	margin-top: 4px;
	font-style: normal;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.62);
}

.fourtn-count.is-done {
	display: none;
}

/* Entrance. */
.fourtn-js .fourtn-hero .fourtn-line > span {
	opacity: 0;
	transform: translateY(0.25em);
	transition: opacity 0.8s var(--fourtn-ease), transform 1s var(--fourtn-ease);
	transition-delay: calc(0.1s + var(--i, 0) * 0.09s);
}

.fourtn-js .fourtn-hero .fourtn-rise {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.9s var(--fourtn-ease) 0.45s, transform 0.9s var(--fourtn-ease) 0.45s;
}

.fourtn-js .fourtn-hero .fourtn-meta.fourtn-rise {
	transition-delay: 0.05s;
}

.fourtn-js .fourtn-hero.is-in .fourtn-line > span,
.fourtn-js .fourtn-hero.is-in .fourtn-rise {
	opacity: 1;
	transform: none;
}

/* ---------- Statement: "Not Just a Game." ---------- */
.fourtn-statement {
	padding: clamp(96px, 12vw, 170px) 0 clamp(96px, 12vw, 170px);
}

.fourtn-statement__intro {
	margin-bottom: clamp(32px, 4vw, 56px) !important;
	font-size: calc(clamp(52px, 8.4vw, 140px) * var(--hs, 1));
}

.fourtn-strip {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: clamp(180px, 24vw, 340px);
	margin-top: 10px;
}

/* Only the photo layers are clipped; the words never are, and the strip grows with them. */
.fourtn-strip__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	isolation: isolate;
}

.fourtn-strip__bg > .fourtn-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.fourtn-strip__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(10, 10, 11, 0.62) 0%, rgba(10, 10, 11, 0.12) 60%, rgba(10, 10, 11, 0) 100%);
}

.fourtn-strip > .fourtn-wrap {
	position: relative;
	z-index: 2;
	padding-top: 28px;
	padding-bottom: clamp(20px, 2.6vw, 36px);
}

.fourtn-strip__word {
	font-size: calc(clamp(48px, 8vw, 132px) * var(--hs, 1));
}

.fourtn-statement__slogan {
	width: 100%;
	margin-top: clamp(96px, 12vw, 170px) !important;
	text-align: center;
	font-size: calc(clamp(40px, 6.6vw, 112px) * var(--hs, 1));
}

.fourtn-statement__slogan span {
	display: block;
}

/* ---------- Divisions: two solid colour panels ---------- */
.fourtn-divisions,
.fourtn-paths,
.fourtn-steps,
.fourtn-details,
.fourtn-faq {
	padding: clamp(88px, 11vw, 160px) 0;
}

.fourtn-div-grid {
	display: grid;
}

.fourtn-path-grid {
	display: grid;
	gap: 16px;
}

@media (min-width: 820px) {
	.fourtn-div-grid,
	.fourtn-path-grid {
		grid-template-columns: 1fr 1fr;
	}
	.fourtn-path-grid {
		gap: 20px;
	}
}

.fourtn-div {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	padding: clamp(28px, 3.6vw, 52px);
	background: var(--c);
	color: var(--c-ink);
}

.fourtn-div::before {
	opacity: 0.16;
}

.fourtn-div > * {
	position: relative;
	z-index: 2;
}

.fourtn-div__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.fourtn-s .fourtn-div__name {
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: calc(clamp(32px, 3.2vw, 50px) * var(--hs, 1));
	line-height: 0.92;
	text-transform: uppercase;
	color: var(--c-ink);
}

.fourtn-div__status {
	padding: 7px 10px 6px;
	background: var(--c-ink);
	color: var(--c);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fourtn-div__num {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin: clamp(36px, 5vw, 64px) 0 22px !important;
}

.fourtn-s .fourtn-div__num b {
	font-size: clamp(140px, 16vw, 250px);
	line-height: 0.9;
	color: var(--c-ink);
}

.fourtn-div__num span {
	max-width: 7em;
	padding-bottom: 4px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--c-ink);
}

.fourtn-div__num i {
	font-style: normal;
}

.fourtn-div__bar {
	display: flex;
	gap: 6px;
	margin-bottom: 36px;
}

.fourtn-div__bar i {
	flex: 1;
	height: 8px;
	background: color-mix(in srgb, var(--c-ink) 20%, transparent);
	transition: background-color 0.6s;
}

.fourtn-div__bar i.is-open {
	background: var(--c-ink);
}

.fourtn-div__cta {
	margin-top: auto;
	align-self: flex-start;
}

.fourtn-div[data-state="full"] .fourtn-div__cta,
.fourtn-div[data-state="closed"] .fourtn-div__cta {
	display: none;
}

.fourtn-div[data-state="full"] .fourtn-div__num b,
.fourtn-div[data-state="closed"] .fourtn-div__num b {
	opacity: 0.4;
}

/* ---------- Ways to play ---------- */
.fourtn-path {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--fourtn-ink-2);
	border-top: 6px solid var(--c, var(--wk));
}

.fourtn-path__media {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	aspect-ratio: 16 / 10;
}

/* Only the photo is clipped (for the hover zoom); the label never is. */
.fourtn-path__photo {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	isolation: isolate;
}

.fourtn-path__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(18, 18, 20, 0) 45%, rgba(18, 18, 20, 0.92) 100%);
}

.fourtn-path__photo .fourtn-photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--fourtn-ease);
}

.fourtn-path:hover .fourtn-path__photo .fourtn-photo:not(.fourtn-photo--blur) {
	transform: scale(1.03);
}

.fourtn-path__label {
	position: relative;
	z-index: 2;
	/* Room under the letters: the photo box clips, so descenders and the font's own spacing stay inside. */
	padding: 0 clamp(24px, 3.2vw, 40px) 0.16em;
	font-size: calc(clamp(52px, 6vw, 92px) * var(--hs, 1));
}

.fourtn-path__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 18px clamp(24px, 3.2vw, 40px) clamp(24px, 3.2vw, 40px);
}

.fourtn-path__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 14px;
}

.fourtn-path__price b {
	font-size: clamp(46px, 4.4vw, 64px);
	line-height: 1;
}

.fourtn-path__price span {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--c-text, var(--wk-text));
}

.fourtn-path__points {
	list-style: none;
	margin: 24px 0 32px !important;
	flex: 1;
}

.fourtn-path__points li {
	display: flex;
	gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--fourtn-line);
	font-size: 16px;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.86);
}

.fourtn-tick {
	flex: none;
	width: 10px;
	height: 10px;
	margin-top: 6px;
	background: var(--c, var(--wk));
}

.fourtn-path__closed {
	font-weight: 700;
	color: var(--fourtn-dim);
}

/* ---------- How it works ---------- */
.fourtn-tabs {
	display: inline-flex;
	box-shadow: inset 0 0 0 2px #fff;
}

.fourtn-tabs button {
	min-height: 48px;
	padding: 0 22px;
	border: 0;
	background: none;
	color: #fff;
	font-family: var(--fourtn-display);
	font-size: 20px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.25s, color 0.25s;
}

.fourtn-tabs button[aria-selected="true"] {
	background: #fff;
	color: var(--fourtn-ink);
}

.fourtn-flow[hidden] {
	display: none !important;
}

.fourtn-flow {
	display: grid;
	gap: 64px;
}

.fourtn-flow__list {
	list-style: none;
}

.fourtn-flow__step {
	padding: 30px 0;
	border-top: 1px solid var(--fourtn-line);
	cursor: pointer;
	transition: opacity 0.4s;
}

.fourtn-flow__n {
	display: block;
	margin-bottom: 12px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.2em;
	color: var(--wk-text);
}

.fourtn-s .fourtn-flow__title {
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: calc(clamp(36px, 3.8vw, 58px) * var(--hs, 1));
	line-height: 0.92;
	text-transform: uppercase;
	letter-spacing: -0.012em;
}

.fourtn-flow__text {
	max-width: 30em;
	margin-top: 14px !important;
	font-size: 17px;
	line-height: 1.5;
	color: var(--fourtn-dim);
}

.fourtn-phone {
	position: relative;
	width: 100%;
	max-width: 360px;
	padding: 11px;
	border-radius: 54px;
	background: #16171a;
	box-shadow: inset 0 0 0 1.5px #3a3c42, 0 0 0 1px #050506, 0 50px 100px rgba(0, 0, 0, 0.6);
}

.fourtn-phone__screen {
	position: relative;
	overflow: hidden;
	aspect-ratio: 430 / 932;
	border-radius: 44px;
	background: var(--fourtn-ink);
}

.fourtn-phone__screen img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}

.fourtn-flow__device .fourtn-phone__screen img {
	opacity: 0;
	transform: scale(1.02);
	transition: opacity 0.5s ease, transform 0.8s var(--fourtn-ease);
}

.fourtn-flow__device .fourtn-phone__screen img.is-active {
	opacity: 1;
	transform: none;
}

.fourtn-flow__device {
	display: none;
}

@media (max-width: 899px) {
	.fourtn-flow__list {
		display: flex;
		gap: 14px;
		margin: 0 calc(-1 * var(--fourtn-gutter)) !important;
		padding: 0 var(--fourtn-gutter) 8px !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--fourtn-gutter);
		scrollbar-width: none;
	}
	.fourtn-flow__list::-webkit-scrollbar {
		display: none;
	}
	.fourtn-flow__step {
		flex: 0 0 min(78vw, 340px);
		scroll-snap-align: start;
		padding: 0;
		border: 0;
		cursor: default;
	}
	.fourtn-phone--inline {
		max-width: 100%;
		margin-bottom: 24px;
		padding: 8px;
		border-radius: 40px;
	}
	.fourtn-phone--inline .fourtn-phone__screen {
		border-radius: 33px;
	}
	.fourtn-flow {
		gap: 0;
	}
}

@media (min-width: 900px) {
	.fourtn-flow {
		grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
		gap: clamp(48px, 8vw, 120px);
		align-items: start;
	}
	.fourtn-phone--inline {
		display: none;
	}
	/* The phone sits on a colour slab, like a poster block. */
	.fourtn-flow__device {
		display: block;
		position: sticky;
		top: calc(var(--fourtn-hdr) + 40px);
		padding: 40px 0 40px 40px;
	}
	.fourtn-flow__device::before {
		content: "";
		position: absolute;
		inset: 0 30% 0 0;
		background: var(--wk);
	}
	.fourtn-flow__step:not(.is-active) {
		opacity: 0.36;
	}
	.fourtn-flow__step:hover {
		opacity: 1;
	}
}

.fourtn-next {
	margin-top: clamp(72px, 9vw, 120px);
	padding-top: 40px;
	border-top: 3px solid #fff;
}

.fourtn-s .fourtn-next__title {
	margin-bottom: 28px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wk-text);
}

.fourtn-next__list {
	display: grid;
	gap: 28px;
	list-style: none;
}

@media (min-width: 700px) {
	.fourtn-next__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1040px) {
	.fourtn-next__list {
		grid-template-columns: repeat(4, 1fr);
	}
}

.fourtn-next__n {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin-bottom: 16px;
	background: var(--wk);
	color: var(--wk-ink);
	font-family: var(--fourtn-display);
	font-size: 22px;
}

.fourtn-next__list h4 {
	margin-bottom: 6px !important;
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: 26px;
	line-height: 1;
	text-transform: uppercase;
}

.fourtn-next__list p {
	font-size: 15px;
	line-height: 1.5;
	color: var(--fourtn-dim);
}

/* ---------- Details (spec sheet) and FAQ share a split layout ---------- */
.fourtn-split {
	display: grid;
	gap: 8px;
}

@media (min-width: 960px) {
	.fourtn-split {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
		gap: clamp(48px, 7vw, 120px);
		align-items: start;
	}
	.fourtn-split__head {
		position: sticky;
		top: calc(var(--fourtn-hdr) + 40px);
	}
}

.fourtn-details__bg {
	position: absolute !important;
	inset: 0 0 0 auto;
	z-index: 0 !important;
	width: min(60%, 900px);
	isolation: isolate;
	opacity: 0.32;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 60%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 60%);
}

.fourtn-details__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fourtn-spec > div {
	display: grid;
	gap: 6px;
	padding: 22px 0;
	border-top: 1px solid var(--fourtn-line);
}

.fourtn-spec > div:first-child {
	border-top: 3px solid #fff;
}

.fourtn-spec > div:last-child {
	border-bottom: 1px solid var(--fourtn-line);
}

@media (min-width: 640px) {
	.fourtn-spec > div {
		grid-template-columns: 210px 1fr;
		gap: 24px;
	}
}

.fourtn-spec dt {
	padding-top: 4px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--fourtn-dim);
}

.fourtn-spec dd {
	font-size: 19px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: -0.01em;
}

.fourtn-q {
	border-top: 1px solid var(--fourtn-line);
}

.fourtn-q:first-child {
	border-top: 3px solid #fff;
}

.fourtn-q:last-child {
	border-bottom: 1px solid var(--fourtn-line);
}

.fourtn-q summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 0;
	font-size: clamp(17px, 1.5vw, 20px);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.35;
	list-style: none;
	cursor: pointer;
	transition: color 0.2s;
}

.fourtn-q summary:hover {
	color: var(--wk-text);
}

.fourtn-q summary::-webkit-details-marker {
	display: none;
}

.fourtn-q summary i {
	position: relative;
	flex: none;
	width: 18px;
	height: 18px;
}

.fourtn-q summary i::before,
.fourtn-q summary i::after {
	content: "";
	position: absolute;
	top: 7px;
	left: 0;
	width: 18px;
	height: 3px;
	background: var(--wk);
	transition: transform 0.35s var(--fourtn-ease);
}

.fourtn-q summary i::after {
	transform: rotate(90deg);
}

.fourtn-q[open] summary i::after {
	transform: rotate(0deg);
}

.fourtn-q__a {
	padding: 0 48px 26px 0;
	font-size: 17px;
	line-height: 1.55;
	color: var(--fourtn-dim);
}

.fourtn-q__a a {
	color: #fff;
	text-underline-offset: 3px;
	text-decoration-color: var(--wk);
	text-decoration-thickness: 2px;
}

@supports (interpolate-size: allow-keywords) {
	.fourtn-faq {
		interpolate-size: allow-keywords;
	}
	.fourtn-q::details-content {
		height: 0;
		overflow: clip;
		transition: height 0.4s var(--fourtn-ease), content-visibility 0.4s allow-discrete;
	}
	.fourtn-q[open]::details-content {
		height: auto;
	}
}

/* ---------- Follow the Season: big social buttons ---------- */
.fourtn-follow {
	padding: clamp(88px, 11vw, 160px) 0;
}

.fourtn-follow .fourtn-sh--row .fourtn-lede {
	max-width: 22em;
	margin-top: 0;
}

.fourtn-follow__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 10px;
}

a.fourtn-follow__btn {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "icon name arrow" "icon handle arrow";
	align-items: center;
	column-gap: 18px;
	min-height: 120px;
	padding: 22px 24px;
	background: var(--c, var(--wk));
	color: var(--c-ink, var(--wk-ink));
	text-decoration: none;
	transition: background-color 0.25s, color 0.25s;
}

a.fourtn-follow__btn:hover {
	background: #fff;
	color: var(--fourtn-ink);
}

.fourtn-follow__btn .fourtn-icon {
	grid-area: icon;
	width: clamp(36px, 3.4vw, 48px);
	height: clamp(36px, 3.4vw, 48px);
}

.fourtn-follow__name {
	grid-area: name;
	min-width: 0;
	font-family: var(--fourtn-display);
	font-size: clamp(34px, 3.6vw, 56px);
	line-height: 0.95;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.fourtn-follow__handle {
	grid-area: handle;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.fourtn-follow__btn .fourtn-arrow {
	grid-area: arrow;
	width: 24px;
	height: 24px;
}

.fourtn-follow__btn:hover .fourtn-arrow {
	transform: translateX(5px);
}

/* Small icon buttons (footer, phone menu). */
.fourtn-social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fourtn-social li + li {
	margin-top: 0 !important;
}

.fourtn-social a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
	color: #fff !important;
	transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
}

.fourtn-social a:hover {
	background: var(--wk);
	color: var(--wk-ink) !important;
	box-shadow: none;
}

.fourtn-social .fourtn-icon {
	width: 20px;
	height: 20px;
}

.fourtn-social--menu {
	margin-top: 28px;
}

.fourtn-hdr__menu .fourtn-social a {
	display: grid;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0;
	font-size: 0;
}

.fourtn-ftr__id {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* ---------- Call to action: a full colour poster ---------- */
.fourtn-s.fourtn-cta {
	padding: clamp(100px, 13vw, 190px) 0 clamp(90px, 11vw, 160px);
	background: var(--c, var(--wk));
	color: var(--c-ink, var(--wk-ink));
	text-align: center;
}

.fourtn-s.fourtn-cta::before {
	opacity: 0.18;
}

.fourtn-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.fourtn-cta__logo {
	width: clamp(180px, 22vw, 300px);
	height: auto;
	margin-bottom: clamp(36px, 5vw, 60px);
	filter: var(--c-logo, none);
}

.fourtn-s .fourtn-cta__title {
	width: 100%;
	font-size: calc(clamp(44px, 8vw, 132px) * var(--hs, 1));
	color: var(--c-ink, var(--wk-ink));
}

.fourtn-cta .fourtn-lede {
	margin-inline: auto;
	color: var(--c-ink, var(--wk-ink));
	opacity: 0.85;
	font-weight: 600;
}

.fourtn-cta .fourtn-actions {
	justify-content: center;
}

.fourtn-cta .fourtn-count {
	margin-top: 56px;
}

.fourtn-cta .fourtn-count__label {
	color: var(--c-ink, var(--wk-ink));
}

.fourtn-cta .fourtn-count__units {
	justify-content: center;
}

.fourtn-cta .fourtn-count__unit {
	background: var(--c-ink, var(--fourtn-ink));
	box-shadow: none;
}

.fourtn-cta .fourtn-count__unit b {
	color: var(--c, var(--wk));
}

.fourtn-cta .fourtn-count__unit i {
	color: var(--c, var(--wk));
	opacity: 0.8;
}

/* ---------- Footer ---------- */
.fourtn-ftr > .fourtn-wrap {
	container-type: inline-size;
}

.fourtn-ftr {
	position: relative;
	padding: 56px 0 36px;
	background: var(--fourtn-ink);
	border-top: 8px solid var(--wk);
	font-size: 14px;
}

.fourtn-ftr__signoff {
	margin: 0 0 56px !important;
	font-family: var(--fourtn-display);
	/* "NEIGHBOURHOOD." is ~6em wide: 16cqi always fits the column. */
	font-size: clamp(40px, 10.4vw, 184px);
	font-size: min(184px, 16cqi);
	line-height: 0.92;
	letter-spacing: -0.012em;
	text-transform: uppercase;
	color: var(--wk-text);
}

.fourtn-ftr__top {
	display: grid;
	gap: 48px;
}

@media (min-width: 900px) {
	.fourtn-ftr__top {
		grid-template-columns: 1fr 2fr;
	}
}

.fourtn-ftr__brand {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	color: var(--fourtn-dim);
	text-decoration: none;
}

.fourtn-ftr .fourtn-ftr__brand img {
	width: auto;
	max-width: none;
	height: 60px;
}

.fourtn-ftr__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 32px;
}

.fourtn-ftr__h {
	margin-bottom: 14px !important;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--fourtn-dim);
}

.fourtn-ftr ul {
	list-style: none;
}

.fourtn-ftr li + li {
	margin-top: 10px;
}

.fourtn-ftr a {
	color: rgba(255, 255, 255, 0.86);
	text-decoration: none;
	transition: color 0.2s;
}

.fourtn-ftr a:hover {
	color: var(--wk-text);
}

.fourtn-ftr__bottom {
	margin-top: 56px !important;
	padding-top: 24px;
	border-top: 1px solid var(--fourtn-line);
	font-size: 13px;
	color: var(--fourtn-dim);
}

/* ---------- Scroll reveal ---------- */
.fourtn-js [data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1s var(--fourtn-ease), transform 1s var(--fourtn-ease);
}

.fourtn-js [data-reveal].is-in {
	opacity: 1;
	transform: none;
}

.elementor-editor-active [data-reveal],
.elementor-editor-active .fourtn-hero .fourtn-line > span,
.elementor-editor-active .fourtn-hero .fourtn-rise {
	opacity: 1 !important;
	transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.fourtn-js [data-reveal],
	.fourtn-js .fourtn-hero .fourtn-line > span,
	.fourtn-js .fourtn-hero .fourtn-rise {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	html:has(body.fourtn-site) {
		scroll-behavior: auto;
	}
}

/* =====================================================================
 * 4TN Page template: registration pages, waiver, team status, terms.
 * Dark page and headlines; forms on paper cards; colour from the palette.
 * ===================================================================== */
.fourtn-main {
	min-height: 60vh;
}

.fourtn-app {
	padding: clamp(56px, 7vw, 96px) 0 clamp(88px, 10vw, 140px);
}

body.fourtn-page .fourtn-reg {
	--fourtn-radius: 0;
	--fourtn-border: #dcdcd6;
	--fourtn-accent: var(--fourtn-ink);
	color: var(--fourtn-text);
	font-family: var(--fourtn-sans);
	font-size: 17px;
}

body.fourtn-page .fourtn-reg .fourtn-head {
	margin-bottom: clamp(28px, 4vw, 44px);
}

body.fourtn-page .fourtn-reg .fourtn-head .fourtn-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wk-text);
}

body.fourtn-page .fourtn-reg .fourtn-head .fourtn-eyebrow::before {
	content: "";
	width: 28px;
	height: 3px;
	background: currentColor;
}

body.fourtn-page .fourtn-reg .fourtn-head .fourtn-title,
body.fourtn-page .fourtn-reg .fourtn-card > .fourtn-title {
	font-family: var(--fourtn-display);
	font-weight: 400;
	text-transform: uppercase;
	line-height: 0.95;
	letter-spacing: -0.012em;
}

body.fourtn-page .fourtn-reg .fourtn-head .fourtn-title {
	font-size: clamp(56px, 8vw, 112px);
	color: var(--fourtn-text);
	margin-bottom: 18px;
}

body.fourtn-page .fourtn-reg .fourtn-card > .fourtn-title {
	font-size: clamp(34px, 5vw, 56px);
	margin-bottom: 16px;
}

body.fourtn-page .fourtn-reg .fourtn-card > .fourtn-eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

body.fourtn-page .fourtn-reg .fourtn-head .fourtn-lead,
body.fourtn-page .fourtn-reg .fourtn-head .fourtn-note {
	font-size: clamp(17px, 1.4vw, 19px);
	font-weight: 500;
	color: var(--fourtn-dim);
	max-width: 40em;
}

body.fourtn-page .fourtn-reg .fourtn-head a {
	color: #fff;
}

/* Progress: blocks, current step in the Colour of the Week. */
body.fourtn-page .fourtn-reg .fourtn-progress {
	margin-top: 28px;
	gap: 4px;
}

body.fourtn-page .fourtn-reg .fourtn-progress li {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fourtn-dim);
}

body.fourtn-page .fourtn-reg .fourtn-progress li::before {
	height: 8px;
	margin-bottom: 10px;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.16);
}

body.fourtn-page .fourtn-reg .fourtn-progress li.is-done::before {
	background: #fff;
}

body.fourtn-page .fourtn-reg .fourtn-progress li.is-current::before {
	background: var(--wk);
}

body.fourtn-page .fourtn-reg .fourtn-progress li.is-current {
	color: #fff;
}

/* Paper cards. */
body.fourtn-page .fourtn-reg .fourtn-card {
	border: 0;
	border-radius: 0;
	padding: clamp(22px, 3.2vw, 36px);
	margin-bottom: 12px;
	background: var(--fourtn-paper);
	box-shadow: none;
}

/* Headings inside paper cards stay ink, whatever the theme's global heading colour is. */
body.fourtn-page .fourtn-reg .fourtn-card :is(h1, h2, h3, h4, h5),
body.fourtn-page .fourtn-reg .fourtn-actions :is(h2, h3, h4) {
	color: var(--fourtn-ink);
}

body.fourtn-page .fourtn-reg .fourtn-card h3 {
	margin-bottom: 20px;
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: 30px;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 0;
}

body.fourtn-page .fourtn-reg input[type="text"],
body.fourtn-page .fourtn-reg input[type="email"],
body.fourtn-page .fourtn-reg input[type="tel"],
body.fourtn-page .fourtn-reg input[type="date"],
body.fourtn-page .fourtn-reg input[type="number"],
body.fourtn-page .fourtn-reg select,
body.fourtn-page .fourtn-reg textarea {
	border-radius: 6px;
	background: #fff;
}

body.fourtn-page .fourtn-reg .fourtn-choice {
	border-radius: 6px;
	background: #fff;
}

body.fourtn-page .fourtn-reg .fourtn-choice:has(input:checked) {
	border-color: var(--fourtn-ink);
	box-shadow: inset 0 0 0 1px var(--fourtn-ink);
}

/* Division options carry the division colours. */
body.fourtn-page .fourtn-reg .fourtn-choice:has(input[value="sunday_only"]) {
	box-shadow: inset 8px 0 0 var(--sun);
	padding-left: 22px;
}

body.fourtn-page .fourtn-reg .fourtn-choice:has(input[value="thursday_only"]) {
	box-shadow: inset 8px 0 0 var(--thu);
	padding-left: 22px;
}

body.fourtn-page .fourtn-reg .fourtn-choice:has(input[value="either_sunday"]) {
	box-shadow: inset 4px 0 0 var(--sun), inset 8px 0 0 var(--thu);
	padding-left: 22px;
}

body.fourtn-page .fourtn-reg .fourtn-choice:has(input[value="either_thursday"]) {
	box-shadow: inset 4px 0 0 var(--thu), inset 8px 0 0 var(--sun);
	padding-left: 22px;
}

body.fourtn-page .fourtn-reg .fourtn-choice:has(input[value$="_only"]:checked),
body.fourtn-page .fourtn-reg .fourtn-choice:has(input[value^="either_"]:checked) {
	outline: 2px solid var(--fourtn-ink);
	outline-offset: -2px;
}

body.fourtn-page .fourtn-reg .fourtn-badge {
	border-radius: 0;
}

/* Info notes on the dark page. */
body.fourtn-page .fourtn-reg .fourtn-note--info:not(.fourtn-card .fourtn-note--info) {
	padding: 14px 18px;
	border: 0;
	border-left: 4px solid var(--wk);
	border-radius: 0;
	background: var(--fourtn-ink-3);
	color: rgba(255, 255, 255, 0.88);
}

body.fourtn-page .fourtn-reg .fourtn-note--info:not(.fourtn-card .fourtn-note--info) a,
body.fourtn-page .fourtn-reg .fourtn-note--info:not(.fourtn-card .fourtn-note--info) button {
	color: #fff;
}

body.fourtn-page .fourtn-reg .fourtn-step__count {
	color: #6a6a70;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 11px;
}

body.fourtn-page .fourtn-reg > .fourtn-note,
body.fourtn-page .fourtn-reg > p,
body.fourtn-page .fourtn-reg .fourtn-form > .fourtn-note {
	color: var(--fourtn-dim);
}

body.fourtn-page .fourtn-reg > p a,
body.fourtn-page .fourtn-reg .fourtn-form > .fourtn-note a {
	color: #fff;
}

/* Sticky total and buttons. */
body.fourtn-page .fourtn-reg .fourtn-actions {
	margin-inline: 0;
	border-radius: 0;
	border-top: 4px solid var(--wk);
	background: var(--fourtn-paper);
	box-shadow: 0 -20px 40px rgba(0, 0, 0, 0.45);
}

body.fourtn-page .fourtn-reg .fourtn-button {
	min-height: 52px;
	border-radius: 0;
	border-color: var(--wk);
	background: var(--wk);
	color: var(--wk-ink);
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: 21px;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

body.fourtn-page .fourtn-reg a.fourtn-button {
	color: var(--wk-ink);
}

body.fourtn-page .fourtn-reg .fourtn-button:hover {
	border-color: var(--fourtn-ink);
	background: var(--fourtn-ink);
	color: #fff;
}

body.fourtn-page .fourtn-reg .fourtn-button--secondary,
body.fourtn-page .fourtn-reg a.fourtn-button--secondary {
	border-color: var(--fourtn-ink);
	background: transparent;
	color: var(--fourtn-ink);
}

body.fourtn-page .fourtn-reg .fourtn-link-button {
	color: var(--fourtn-ink);
}

/* Terms and any plain page on the 4TN template. */
.fourtn-prose {
	max-width: 46em;
	font-size: 17px;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.82);
}

.fourtn-prose h2 {
	margin: 48px 0 12px !important;
	font-family: var(--fourtn-display);
	font-weight: 400;
	font-size: 34px;
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
}

.fourtn-prose p,
.fourtn-prose ul,
.fourtn-prose ol {
	margin: 0 0 16px !important;
}

.fourtn-prose ul,
.fourtn-prose ol {
	padding-left: 1.25em !important;
}

.fourtn-prose a {
	color: #fff;
	text-underline-offset: 3px;
	text-decoration-color: var(--wk);
	text-decoration-thickness: 2px;
}

.fourtn-prose strong {
	color: #fff;
}
