/*
Theme Name: Ten Thousand Watts
Author: Ten Thousand Watts
Description: A block theme for Ten Thousand Watts, the live entertainment company behind the flagship show, its production work and its represented talent.
Version: 1.3.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tenkw
*/

/* Tokens live in theme.json. Short aliases keep the component CSS readable. */
:root {
	--amber: var(--wp--preset--color--amber);
	--ink: var(--wp--preset--color--ink);
	--midnight: var(--wp--preset--color--midnight);
	--panel: var(--wp--preset--color--panel);
	--paper: var(--wp--preset--color--paper);
	--paper-dim: var(--wp--preset--color--paper-dim);
	--ember: var(--wp--preset--color--ember);
	--display: var(--wp--preset--font-family--display);
	--mono: var(--wp--preset--font-family--mono);
	--gutter: var(--wp--custom--gutter);
	--line: var(--wp--custom--line);
	--frame-r: var(--wp--custom--radius--small);
	--frame-R: var(--wp--custom--radius--big);
	--frame-Rc: var(--wp--custom--radius--card);
	--band-r: var(--wp--custom--radius--band);
	--sec: var(--wp--preset--spacing--80); /* the one vertical gap between sections */
	--pgap: var(--wp--preset--spacing--30);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	font-stretch: 100%;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 4px; border-radius: 4px; }
.on-amber :focus-visible, .on-amber:focus-visible { outline-color: var(--ink); }

.tenkw-skip {
	position: absolute; left: 12px; top: -60px; z-index: 200;
	background: var(--amber); color: var(--ink); padding: 10px 14px;
	font-family: var(--mono); font-size: 13px; text-decoration: none;
}
.tenkw-skip:focus { top: 12px; }

/* The design sets every margin itself. Clear the block gap inside theme components. */
:where(.wp-site-blocks, .is-root-container) > * { margin-block: 0; }
:is(.tenkw-main, .is-root-container) :where(p, h1, h2, h3, h4, ul, ol, li, blockquote, figure, div, .wp-block-read-more, .wp-block-group, .wp-block-buttons, .wp-block-query, .wp-block-post-template, .wp-block-tenkw-graphic, .wp-block-post-excerpt, .wp-block-post-title, .wp-block-post-featured-image, .wp-block-post-content),
.tenkw-head-outer :where(p, ul, li, .wp-block-group, .wp-block-navigation, .wp-block-tenkw-graphic),
.tenkw-foot-outer :where(p, ul, li, .wp-block-group, .wp-block-navigation, .wp-block-tenkw-graphic) { margin-block: 0; }

/* The footer sits at the bottom of short pages instead of leaving bare ground under it. */
.wp-site-blocks { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.wp-site-blocks > .tenkw-main { flex: 1 0 auto; }

/* Grain: risograph tooth over everything, never heavy. Sized to the viewport exactly. */
body::after {
	content: ""; position: fixed; inset: 0; z-index: 150; pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 .92  0 0 0 0 .8  1.4 0 0 0 -.62'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	opacity: .16; mix-blend-mode: overlay;
}
/* Paper tooth on the amber bands */
.tenkw-strip::before, .tenkw-close::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='t'><feTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='4' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .25  0 0 0 0 .12  0 0 0 0 0  1.1 0 0 0 -.5'/></filter><rect width='100%' height='100%' filter='url(%23t)'/></svg>");
	opacity: .5; mix-blend-mode: multiply;
}

/* Shared pieces */
.tenkw-mono {
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 500;
	text-transform: uppercase; letter-spacing: .1em; font-size: 12.5px; line-height: 1.9;
}
.tenkw-stack { margin: 0; padding: 0; list-style: none; }
.tenkw-rule { display: block; width: 44px; height: 2px; background: currentColor; margin: 18px 0; }
.tenkw-rule.is-short { width: 22px; margin: 10px 0 0; }
.tenkw-wm { display: block; fill: currentColor; }
/* Gradient bar: the signal gradient, always ending in the exact color of the surface it sits on
   (--gbar-end, set by the container), so it dissolves instead of stopping on an edge. */
.tenkw-gbar, .tenkw-hero-copy::before, .tenkw-page-hero-copy::before {
	background: linear-gradient(180deg, #F99813 0%, #E54B20 22%, #B42839 42%, #543784 62%, #213581 78%, #142556 90%, var(--gbar-end, var(--ink)) 100%);
	border-radius: 2px 2px 0 0;
}
.tenkw-gbar { display: block; }
.tenkw-gbar.is-reverse {
	background: linear-gradient(180deg, #0E0E0E 0%, #213581 26%, #543784 44%, #B42839 64%, #E54B20 82%, var(--gbar-end, var(--amber)) 100%);
}
.tenkw-hero-frame, .tenkw-page-hero { --gbar-end: var(--panel); }
.tenkw-strip { --gbar-end: var(--amber); }
.tenkw-disc { aspect-ratio: 1; border-radius: 50%; background: var(--amber); display: grid; place-items: center; }
.tenkw-disc svg { width: 70%; fill: var(--panel); }
.tenkw-muted { color: var(--paper-dim); }
:is(.tenkw-main, .is-root-container) .tenkw-label { color: var(--amber); margin: 0 0 18px; }

:is(.tenkw-main, .is-root-container) :is(h1, h2) { text-wrap: balance; }
:is(.tenkw-main, .is-root-container) h1 { font-stretch: 125%; }
:is(.tenkw-main, .is-root-container) h2 { font-stretch: 118%; }
:is(.tenkw-main, .is-root-container) h3 { font-stretch: 110%; }

/* Buttons: no arrows, mono caps, clear states */
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; text-align: center;
	min-height: 52px; font-stretch: 112.5%; text-decoration: none; line-height: 1.3; padding-block: 10px;
	transition: background-color .2s, color .2s, border-color .2s;
}
.wp-block-button.is-style-line .wp-block-button__link { background: transparent; color: var(--amber); border-color: var(--amber); }
.wp-block-button.is-style-line .wp-block-button__link:hover { background: var(--amber); color: var(--ink); border-color: var(--amber); }
.wp-block-button.is-style-ink .wp-block-button__link { background: var(--ink); color: var(--amber); border-color: var(--ink); }
.wp-block-button.is-style-ink .wp-block-button__link:hover { background: transparent; color: var(--ink); border-color: var(--ink); }

p.tenkw-textlink { display: flex; }
.tenkw-textlink > a, a.tenkw-textlink {
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 600; font-size: 12.5px;
	letter-spacing: .12em; text-transform: uppercase; color: var(--amber);
	text-decoration: none; border-bottom: 2px solid var(--amber); padding-bottom: 3px;
}
.tenkw-textlink > a:hover, a.tenkw-textlink:hover { color: var(--paper); border-color: var(--paper); }

/* Header */
.tenkw-site-head { gap: 24px; padding-block: 22px 18px; }
.tenkw-brand { color: var(--amber); width: clamp(92px, 9vw, 128px); flex-shrink: 0; }
.tenkw-brand-link { display: block; }
.tenkw-brand .tenkw-wm { width: 100%; height: auto; }
.tenkw-nav .wp-block-navigation__container { gap: clamp(14px, 2.2vw, 34px); align-items: center; }
.tenkw-nav .wp-block-navigation-item__content {
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 500; font-size: 12.5px;
	letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--paper);
	padding: 8px 0; line-height: 1.55;
}
.tenkw-nav .wp-block-navigation-item__content:hover { color: var(--amber); }
.tenkw-nav .tenkw-nav-cta > .wp-block-navigation-item__content {
	color: var(--amber); border: 2px solid var(--amber); border-radius: 999px; padding: 8px 18px;
}
.tenkw-nav .tenkw-nav-cta > .wp-block-navigation-item__content:hover { background: var(--amber); color: var(--ink); }

.tenkw-nav.wp-block-navigation .wp-block-navigation__responsive-container-open,
.tenkw-nav.wp-block-navigation .wp-block-navigation__responsive-container-close {
	position: relative; z-index: 130; align-items: center; gap: 10px;
	background: none; border: 2px solid var(--amber); color: var(--amber); border-radius: 999px;
	padding: 9px 16px; font-family: var(--mono); font-size: 12px; letter-spacing: .12em;
	text-transform: uppercase; cursor: pointer; line-height: normal;
}

/* HERO: the sheet's big rounded amber frame. The page's one loud moment. */
.tenkw-hero-frame {
	position: relative;
	display: grid; grid-template-columns: minmax(400px, 40%) 1fr;
	border: var(--line) solid var(--amber);
	border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R);
	overflow: hidden; background: var(--panel);
	min-height: min(760px, calc(100svh - 110px));
}
.tenkw-hero-copy {
	position: relative; z-index: 2;
	display: grid; grid-template-columns: clamp(18px, 1.9vw, 28px) 1fr; grid-template-rows: auto 1fr;
	column-gap: clamp(20px, 2.4vw, 36px);
	padding: clamp(24px, 2.4vw, 36px) clamp(24px, 3vw, 48px) clamp(28px, 3vw, 48px) clamp(18px, 1.6vw, 26px);
	border-right: var(--line) solid var(--amber);
}
.tenkw-hero-copy::before {
	content: ""; grid-column: 1; grid-row: 1 / span 2;
	height: 64%; min-height: 260px;
}
.tenkw-hero-copy > .tenkw-g-labels { grid-column: 2; grid-row: 1; }
.tenkw-hero-labels { color: var(--amber); font-size: clamp(12.5px, 1vw, 15px); }
/* The headline is sized by its own column (container units), so the longest word always fits. */
.tenkw-headline-group { grid-column: 2; grid-row: 2; align-self: end; padding-top: 40px; container-type: inline-size; min-width: 0; }
:is(.tenkw-main, .is-root-container) .tenkw-support { margin: 22px 0 30px; max-width: 34ch; color: var(--paper); font-size: var(--wp--preset--font-size--support); }
:is(.tenkw-main, .is-root-container) .tenkw-ctas { display: flex; flex-wrap: wrap; gap: 12px; }

.tenkw-hero-art { position: relative; overflow: hidden; background: var(--midnight); }
.tenkw-hero-art picture, .tenkw-hero-art img { position: absolute; inset: 0; width: 100%; height: 100%; }
.tenkw-hero-art img { object-fit: cover; object-position: 35% 42%; }
@media (max-width: 760px) { .tenkw-hero-art img { object-position: 50% 42%; } }
.tenkw-ignite { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; }
.tenkw-ignite svg { position: absolute; overflow: visible; }

/* The sheet's right-hand badge pill, measured from the sheet in units of its width (--w):
   equal padding .093w on all sides, disc .814w (concentric with the arched top), a 4x5 dot matrix
   (.148w dots, .032w gaps, doubled between the two pairs), and a .436w rule. */
.tenkw-pill {
	--w: clamp(118px, 12.5vw, 180px);
	--inset: clamp(24px, 3vw, 44px);
	position: absolute; z-index: 3; top: var(--inset); right: var(--inset);
	width: var(--w); padding: calc(var(--w) * .093);
	background: var(--panel); color: var(--amber);
	border-radius: 999px 999px calc(var(--w) * .13) calc(var(--w) * .13);
}
.tenkw-pill .tenkw-disc { width: 100%; }
.tenkw-dots {
	display: grid; justify-content: center;
	grid-template-columns: repeat(2, calc(var(--w) * .148)) 0 repeat(2, calc(var(--w) * .148));
	column-gap: calc(var(--w) * .032); row-gap: calc(var(--w) * .021);
	margin-top: calc(var(--w) * .059);
}
.tenkw-dots i { aspect-ratio: 1; border-radius: 50%; background: var(--amber); }
.tenkw-dots i:nth-child(4n+1) { grid-column: 1; }
.tenkw-dots i:nth-child(4n+2) { grid-column: 2; }
.tenkw-dots i:nth-child(4n+3) { grid-column: 4; }
.tenkw-dots i:nth-child(4n+4) { grid-column: 5; }
.tenkw-dots i.off { background: transparent; }
.tenkw-pill-rule {
	display: block; width: calc(var(--w) * .436); height: max(2px, calc(var(--w) * .0127)); background: var(--amber);
	margin: calc(var(--w) * .178) 0 0 calc(var(--w) * .047);
}
/* BROADCAST / CREATE / CONNECT / AMPLIFY. 12px floor: the panel's narrowest width (118px) still fits "BROADCAST". */
.tenkw-pill .tenkw-pill-stack {
	margin: calc(var(--w) * .16) 0 0 calc(var(--w) * .047);
	font-size: max(12px, calc(var(--w) * .075)); font-weight: 600; line-height: 1.6; letter-spacing: .06em; white-space: nowrap;
}

/* Lower strip: the amber band from the sheet. Its divider lines up with the hero's. */
:is(.tenkw-main, .is-root-container) .tenkw-strip {
	position: relative; margin-top: clamp(12px, 1.4vw, 20px);
	background: var(--amber); color: var(--ink);
	border-radius: var(--band-r);
	display: grid; grid-template-columns: minmax(400px, 40%) 1fr;
	padding: clamp(10px, .85vw, 12px) var(--line);
	overflow: hidden;
}
.tenkw-strip > * { position: relative; z-index: 1; }
.tenkw-strip .tenkw-cell { padding: 0 clamp(20px, 2.4vw, 36px); min-width: 0; }
.tenkw-strip .tenkw-lockup { border-right: 3px solid var(--ink); display: flex; flex-direction: column; justify-content: center; }
/* The strip wordmark uses the tight viewBox, so its box is exactly the letters. */
.tenkw-strip .tenkw-wm { width: 100%; height: auto; margin: 0; }

/* Lockup under the wordmark, exactly as wide as the letters:
   two equal rules left of the globe, one rule right of it at the upper rule's height,
   a short lower rule and "EST. 2026" on the lower rules' baseline, the globe centred between the rows. */
.tenkw-lockup-foot {
	--rule: max(2px, .22vw);
	--globe: clamp(28px, 2.9vw, 42px);
	--est: clamp(12px, 1.15vw, 16px);
	display: grid; grid-template-columns: 1fr auto 1fr; grid-template-rows: auto auto;
	column-gap: clamp(12px, 1.6vw, 24px);
	/* distance between the two rule rows is .4 of the globe, like the sheet */
	row-gap: calc(var(--globe) * .4 - var(--est) * .82);
	margin-top: calc(var(--globe) * .3 + clamp(4px, .5vw, 8px));
	margin-bottom: calc(var(--globe) * .3 - var(--rule));
}
.tenkw-lockup-foot .rule { display: block; height: var(--rule); background: var(--ink); }
.tenkw-lockup-foot .l1 { grid-area: 1 / 1; }
.tenkw-lockup-foot .l2 { grid-area: 2 / 1; align-self: end; }
.tenkw-lockup-foot .r1 { grid-area: 1 / 3; }
.tenkw-lockup-foot .tenkw-globe {
	grid-area: 1 / 2 / 3 / 3; align-self: center; display: block;
	width: var(--globe); height: var(--globe);
	/* negative margins keep the globe from stretching the rows, so it stays centred on them */
	margin-block: calc(var(--globe) * -1);
}
.tenkw-lockup-foot .est-row { grid-area: 2 / 3; display: flex; align-items: baseline; gap: clamp(10px, 1.2vw, 18px); }
.tenkw-lockup-foot .r2 { flex: 1; }
.tenkw-lockup-foot b {
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 600; letter-spacing: .14em; font-size: var(--est);
	/* line-height 1 puts the baseline .82em down; pulling the box up by the descent ends it on the baseline */
	line-height: 1; margin-bottom: -.18em; margin-right: -.14em; white-space: nowrap;
}
.tenkw-slogan {
	display: grid; grid-template-columns: clamp(14px, 1.4vw, 20px) auto minmax(0, 1fr);
	column-gap: clamp(14px, 1.6vw, 24px); align-items: stretch;
}
.tenkw-slogan-text { align-self: end; }
.tenkw-slogan .tenkw-stack { font-size: 12px; line-height: 1.6; }
.tenkw-slogan .tenkw-rule.is-short { margin: 6px 0 0; }
/* The barcode runs from the slogan to the cell's end, bottom-aligned with the slogan's rule. */
.tenkw-slogan .tenkw-barcode { align-self: end; width: 100%; }
/* The barcode: used once, in the strip. */
.tenkw-barcode { height: 44px; background:
	repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 5px),
	repeating-linear-gradient(90deg, var(--ink) 0 1px, transparent 1px 7px),
	repeating-linear-gradient(90deg, transparent 0 9px, var(--ink) 9px 12px, transparent 12px 17px); }

/* Badge slots, shown only once real SVGs exist (TENKW_BADGES_READY). */
.tenkw-badge-slot {
	aspect-ratio: 1; width: min(100%, 190px); margin-inline: auto; border-radius: 50%;
	border: 2px dashed currentColor; display: grid; place-items: center; text-align: center;
	padding: 16%; font-family: var(--mono); font-stretch: 87.5%; font-size: 12px; letter-spacing: .06em; line-height: 1.5; text-transform: uppercase;
}

/* Sections: one vertical gap everywhere (--sec). */
:is(.tenkw-main, .is-root-container) .tenkw-sec { padding-top: var(--sec); }
:is(.tenkw-main, .is-root-container) .tenkw-lead { font-size: var(--wp--preset--font-size--lead); color: var(--paper); max-width: 44ch; }
.tenkw-sec-head { margin-bottom: var(--wp--preset--spacing--60); }
:is(.tenkw-main, .is-root-container) .tenkw-sec-head:last-child { margin-bottom: 0; }
@media (min-width: 761px) { .tenkw-sec-head:not(.is-split) { padding-right: 30px; } }
:is(.tenkw-main, .is-root-container) .tenkw-sec-head.is-split p { margin: 0; }
.tenkw-sec-head.is-split { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: end; }

/* What 10kW is */
.tenkw-legs {
	--lgap: clamp(22px, 3vw, 48px);
	display: grid; grid-template-columns: repeat(3, 1fr);
	column-gap: calc(var(--lgap) * 2 + var(--line));
	border: var(--line) solid var(--amber);
	border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R);
	padding: clamp(28px, 3vw, 48px);
}
.tenkw-leg { position: relative; display: flex; flex-direction: column; gap: 16px; }
/* Dividers are frame lines, same weight as the panel outline. */
.tenkw-leg + .tenkw-leg::before {
	content: ""; position: absolute; top: 0; bottom: 0; left: calc(var(--lgap) * -1 - var(--line)); width: var(--line);
	background: var(--amber);
}
.tenkw-leg > p:not(.tenkw-textlink) { color: var(--paper-dim); }
.tenkw-leg strong { font-weight: inherit; color: var(--paper); }
:is(.tenkw-main, .is-root-container) .tenkw-leg .tenkw-textlink { align-self: flex-start; margin-top: auto; }

/* Flagship */
.tenkw-flag { display: grid; grid-template-columns: 1.55fr 1fr; gap: var(--pgap); align-items: stretch; }
.tenkw-media {
	position: relative; border: var(--line) solid var(--amber);
	border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R);
	overflow: hidden; background: var(--midnight); aspect-ratio: 16 / 9;
}
.tenkw-reel { position: absolute; inset: 0; }
.tenkw-reel .tenkw-horizon { position: absolute; left: 0; right: 0; bottom: 0; height: 38%; background: linear-gradient(180deg, transparent, rgba(180,40,57,.35) 55%, rgba(242,110,24,.55)); }
.tenkw-reel .tenkw-tag { position: absolute; top: clamp(18px, 2vw, 28px); left: clamp(20px, 3vw, 44px); margin: 0; color: var(--amber); }
.tenkw-flag-panel {
	background: var(--panel);
	border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R);
	padding: clamp(28px, 3vw, 48px);
	display: flex; flex-direction: column;
}
:is(.tenkw-main, .is-root-container) .tenkw-flag-title { font-size: var(--wp--preset--font-size--panel); color: var(--amber); }
:is(.tenkw-main, .is-root-container) .tenkw-flag-panel > p:not(.tenkw-label) { margin: 18px 0 30px; }
:is(.tenkw-main, .is-root-container) .tenkw-panel-cta { align-self: flex-start; margin-top: auto; }

/* Phone-first: phone and text as one composition, phone leading like the flagship's media. */
.tenkw-phone-sec { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: clamp(48px, 6vw, 96px); align-items: center; }
.tenkw-phone-wrap { grid-column: 1; grid-row: 1; }
.tenkw-phone-body { grid-column: 2; grid-row: 1; }
:is(.tenkw-main, .is-root-container) .tenkw-phone-body > p { margin: 22px 0 0; max-width: 52ch; }
:is(.tenkw-main, .is-root-container) .tenkw-phone-body > .tenkw-lead { max-width: 44ch; }
:is(.tenkw-main, .is-root-container) .tenkw-pull { margin: clamp(36px, 4vw, 56px) 0 0; padding: 0; }
.tenkw-pull p {
	font-family: var(--display); font-stretch: 118%; font-weight: 850; max-width: 22ch;
	font-size: var(--wp--preset--font-size--quote); line-height: 1.02; color: var(--amber); text-wrap: balance;
}
.tenkw-phone {
	position: relative; width: clamp(220px, 20vw, 300px); aspect-ratio: 9 / 18.5;
	border: var(--line) solid var(--amber); border-radius: clamp(30px, 3vw, 44px);
	background: var(--midnight); overflow: hidden;
}
.tenkw-phone .screen {
	position: absolute; inset: 10px; border-radius: clamp(22px, 2.4vw, 34px); overflow: hidden;
	background: radial-gradient(120% 60% at 50% 100%, rgba(242,110,24,.55), transparent 60%), var(--midnight);
}
.tenkw-phone .vf { position: absolute; inset: 14% 12% 26%; }
.tenkw-phone .vf i { position: absolute; width: 22px; height: 22px; border: 2px solid var(--amber); }
.tenkw-phone .vf i:nth-child(1) { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.tenkw-phone .vf i:nth-child(2) { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.tenkw-phone .vf i:nth-child(3) { bottom: 0; left: 0; border-right: 0; border-top: 0; }
.tenkw-phone .vf i:nth-child(4) { bottom: 0; right: 0; border-left: 0; border-top: 0; }
.tenkw-phone .tenkw-wm { position: absolute; left: 50%; top: 44%; width: 46%; translate: -50% -50%; color: var(--amber); }
.tenkw-phone .phlabel { position: absolute; left: 22px; right: 22px; bottom: 22px; margin: 0; color: var(--paper); font-size: 12px; line-height: 1.6; }

/* Talent: cards come from Talent entries. Cards use the CRT panel at card scale. */
.tenkw-people {
	display: grid; gap: var(--pgap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
/* The query's wrappers step aside so the artist cards and the Represented panel share one grid:
   any number of artists flows in order and the panel is always the last card. */
:is(.tenkw-main, .is-root-container) .tenkw-people-query, :is(.tenkw-main, .is-root-container) .tenkw-people-list { display: contents; }
:is(.tenkw-main, .is-root-container) .tenkw-people-list { list-style: none; padding: 0; }
.tenkw-people-list > li { display: flex; }
.tenkw-person {
	flex: 1; border: var(--line) solid var(--amber); overflow: hidden; display: flex; flex-direction: column;
	border-radius: var(--frame-r) var(--frame-Rc) var(--frame-r) var(--frame-Rc);
}
.tenkw-portrait { position: relative; aspect-ratio: 4 / 4.4; background: var(--panel); overflow: hidden; }
.tenkw-portrait img { width: 100%; height: 100%; object-fit: cover; }
.tenkw-portrait .tenkw-phl { position: absolute; left: 20px; top: 18px; right: 20px; margin: 0; color: var(--amber); font-size: 12px; }
.tenkw-person-meta { padding: 22px 24px 26px; display: grid; gap: 12px; border-top: var(--line) solid var(--amber); flex: 1; align-content: start; }
:is(.tenkw-main, .is-root-container) .tenkw-person-name { font-size: var(--wp--preset--font-size--name); color: var(--amber); }
.tenkw-person-role { color: var(--paper-dim); font-size: 12px; line-height: 1.7; }
.tenkw-person-role p { margin: 0; }
:is(.tenkw-main, .is-root-container) .tenkw-person-credit { color: var(--paper-dim); font-size: 15px; line-height: 1.5; }
:is(.tenkw-main, .is-root-container) .tenkw-person-blurb { color: var(--paper); font-size: 16px; line-height: 1.55; }
.tenkw-person-blurb p { margin: 0; }
/* Artist hero: the opening line runs full width with the credit line beneath it (long bios stay readable). */
:is(.tenkw-main, .is-root-container) .tenkw-page-hero.has-media .tenkw-page-hero-foot { grid-template-columns: minmax(0, 1fr); gap: 18px; }
:is(.tenkw-main, .is-root-container) .tenkw-page-hero.has-media .tenkw-page-hero-foot .tenkw-lead { max-width: 52ch; }
:is(.tenkw-main, .is-root-container) .tenkw-hero-credit { color: var(--paper-dim); text-align: left; max-width: 52ch; justify-self: start; }
.tenkw-page-hero-foot .wp-block-post-excerpt p { margin: 0; }

/* Artist video or audio: fills the 16:9 media slot; placeholder label until a URL is set */
.tenkw-talent-media { position: absolute; inset: 0; }
.tenkw-talent-media > .tenkw-tag { position: absolute; top: clamp(18px, 2vw, 28px); left: clamp(20px, 3vw, 44px); right: 20px; margin: 0; color: var(--amber); }
.tenkw-embed, .tenkw-embed iframe, .tenkw-embed object, .tenkw-embed embed { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tenkw-person-meta .tenkw-textlink { justify-self: start; }
.tenkw-represented {
	background: var(--panel);
	border-radius: var(--frame-r) var(--frame-Rc) var(--frame-r) var(--frame-Rc);
	padding: clamp(26px, 3vw, 44px); display: flex; flex-direction: column; gap: 22px; position: relative; overflow: hidden;
}
:is(.tenkw-main, .is-root-container) .tenkw-rep-paths { list-style: none; padding: 0; border-bottom: 2px solid rgba(249,166,22,.4); }
.tenkw-rep-paths li {
	padding: 12px 0; border-top: 2px solid rgba(249,166,22,.4); color: var(--paper);
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 500; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase;
}
:is(.tenkw-main, .is-root-container) .tenkw-rep { color: var(--amber); font-family: var(--display); font-stretch: 125%; font-weight: 900; font-size: clamp(26px, 2.6vw, 40px); line-height: .95; text-transform: uppercase; }

/* Closing: amber band bookend. The two columns share rows (subgrid): headline beside the routes,
   paragraph beside the button, so both line up at every width. */
:is(.tenkw-main, .is-root-container) .tenkw-close-wrap { margin-top: var(--sec); }
.tenkw-close {
	--pad: clamp(30px, 4vw, 64px);
	position: relative;
	background: var(--amber); color: var(--ink); border-radius: var(--band-r);
	display: grid; grid-template-columns: 1.5fr 1fr; grid-template-rows: auto auto; row-gap: 28px; overflow: hidden;
	container-type: inline-size;
}
.tenkw-close > * { position: relative; z-index: 1; min-width: 0; grid-row: span 2; display: grid; grid-template-rows: subgrid; align-content: start; }
.tenkw-close-left { padding: var(--pad); }
:is(.tenkw-main, .is-root-container) .tenkw-close .tenkw-close-title { color: var(--ink); font-stretch: 125%; font-weight: 900; line-height: .88; text-transform: uppercase;
	/* Fit "SOMETHING" (8.12em) to the left column: 60% of the band, less its padding. */
	font-size: min(124px, calc((60cqi - 2 * var(--pad)) / 8.4)); }
:is(.tenkw-main, .is-root-container) .tenkw-close-left > p:last-child { max-width: 40ch; font-size: 18px; }
.tenkw-close-right { border-left: 3px solid var(--ink); padding: var(--pad) clamp(24px, 3vw, 48px); }
:is(.tenkw-main, .is-root-container) .tenkw-routes { list-style: none; padding: 0; display: grid; }
.tenkw-routes a {
	display: flex; justify-content: space-between; gap: 16px; align-items: baseline;
	padding: 14px 0; border-top: 2px solid var(--ink); text-decoration: none;
	color: rgba(14,14,14,.78);
	font-family: var(--mono); font-size: 12px; font-stretch: 87.5%; letter-spacing: .04em; text-align: right;
}
.tenkw-routes li:last-child a { border-bottom: 2px solid var(--ink); }
.tenkw-routes strong {
	color: var(--ink); text-align: left; flex-shrink: 0;
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 600;
	text-transform: uppercase; letter-spacing: .1em; font-size: 12.5px; line-height: 1.9;
}
.tenkw-routes a:hover strong { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
/* The button sits on the paragraph's row, top-aligned with it. */
:is(.tenkw-main, .is-root-container) .tenkw-close .tenkw-panel-cta { margin-top: 0; align-self: start; }

/* Footer */
.tenkw-foot { padding-block: var(--sec) 28px; }
.tenkw-foot-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: start; }
.tenkw-foot-brand { width: clamp(150px, 16vw, 230px); color: var(--amber); }
.tenkw-foot-outer .tenkw-blurb { margin: 22px 0 0; color: var(--paper-dim); max-width: 38ch; }
.tenkw-foot-nav .wp-block-navigation__container { gap: 4px; }
.tenkw-foot-nav .wp-block-navigation-item__content {
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 500;
	text-transform: uppercase; letter-spacing: .1em; font-size: 12.5px; line-height: 1.9;
	text-decoration: none; color: var(--paper);
}
.tenkw-foot-nav .wp-block-navigation-item__content:hover { color: var(--amber); }
.tenkw-badges { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; color: var(--amber); }
.tenkw-badges .tenkw-badge-slot { width: 100%; max-width: 140px; padding: 14%; }
.tenkw-foot-outer .tenkw-sig {
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px 30px;
	margin-top: 56px; padding-top: 22px; border-top: 2px solid rgba(249,166,22,.4);
	color: var(--paper-dim); font-size: 12px;
}
.tenkw-sig .tenkw-coords { color: var(--amber); }

/* ------------------------------------------------------------------
   Interior pages. Same frame, same rules: one loud moment per page.
   ------------------------------------------------------------------ */

/* Page hero: CRT frame, gradient bar, fitted title. Titles share one size rule across pages:
   "EXCEPTIONAL" (9.3em) is the longest title word, so 100cqi / 9.6 always fits. */
:is(.tenkw-main, .is-root-container) .tenkw-page-hero {
	border: var(--line) solid var(--amber);
	border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R);
	background: var(--panel); overflow: hidden;
	display: grid; grid-template-columns: minmax(0, 1fr);
	min-height: clamp(340px, 32vw, 480px);
}
:is(.tenkw-main, .is-root-container) .tenkw-page-hero.has-media { grid-template-columns: minmax(0, 1fr) minmax(300px, 40%); }
.tenkw-page-hero-copy {
	--bar: clamp(18px, 1.9vw, 28px); --bar-gap: clamp(20px, 2.4vw, 36px); --pad-l: clamp(18px, 1.6vw, 26px); --pad-t: clamp(28px, 3vw, 48px);
	position: relative; display: flex; flex-direction: column; min-width: 0;
	padding: var(--pad-t) clamp(24px, 3vw, 56px) clamp(28px, 3vw, 48px) calc(var(--pad-l) + var(--bar) + var(--bar-gap));
	container-type: inline-size;
}
.tenkw-page-hero-copy::before {
	content: ""; position: absolute; left: var(--pad-l); top: var(--pad-t); width: var(--bar);
	height: 64%; min-height: 200px;
}
:is(.tenkw-main, .is-root-container) .tenkw-page-title {
	color: var(--amber); font-stretch: 125%; font-weight: 900; line-height: .92; letter-spacing: -.012em;
	text-transform: uppercase; font-size: min(104px, calc(100cqi / 9.6));
}
:is(.tenkw-main, .is-root-container) .tenkw-page-hero-foot {
	margin-top: auto; padding-top: 40px;
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end;
}
.tenkw-page-hero-media, .tenkw-page-hero > .tenkw-portrait { border-left: var(--line) solid var(--amber); height: 100%; aspect-ratio: auto; margin: 0; }
.tenkw-page-hero-media img { width: 100%; height: 100%; object-fit: cover; }

/* Journey: the show page's in-page steps, styled as text links */
:is(.tenkw-main, .is-root-container) .tenkw-journey { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 14px 28px; }
.tenkw-journey a {
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 600; font-size: 12.5px;
	letter-spacing: .12em; text-transform: uppercase; color: var(--amber);
	text-decoration: none; border-bottom: 2px solid var(--amber); padding-bottom: 3px;
}
.tenkw-journey a:hover { color: var(--paper); border-color: var(--paper); }

/* A section's heading when it has no split head */
:is(.tenkw-main, .is-root-container) .tenkw-sec > .wp-block-heading { margin-bottom: var(--wp--preset--spacing--60); }

/* Statement: one big line per page, in display type */
:is(.tenkw-main, .is-root-container) .tenkw-statement {
	font-family: var(--display); font-stretch: 118%; font-weight: 850; line-height: .96; letter-spacing: -.015em;
	font-size: clamp(34px, 6vw, 96px); color: var(--paper); text-wrap: balance; max-width: 18ch;
}
:is(.tenkw-main, .is-root-container) .tenkw-statement.is-amber { color: var(--amber); }

/* Cards: any number of people. Featured card is twice as wide on desktop. */
:is(.tenkw-main, .is-root-container) .tenkw-cards {
	display: grid; gap: var(--pgap); list-style: none; padding: 0;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}
.tenkw-cards > li { display: flex; }
.tenkw-person-name a { color: inherit; text-decoration: none; }
.tenkw-person-name a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
:is(.tenkw-main, .is-root-container) .tenkw-lineup-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 40px; margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40); }
:is(.tenkw-main, .is-root-container) .tenkw-lineup-title { font-size: var(--wp--preset--font-size--panel); font-stretch: 118%; font-weight: 850; }
@media (min-width: 761px) {
	.tenkw-cards > .is-featured { grid-column: span 2; }
	.tenkw-person.is-featured .tenkw-portrait { aspect-ratio: auto; flex: 1 1 auto; min-height: clamp(260px, 28vw, 440px); }
	:is(.tenkw-main, .is-root-container) .tenkw-person.is-featured .tenkw-person-name { font-size: var(--wp--preset--font-size--panel); }
}

/* Legs variants and lists */
.tenkw-legs.is-2 { grid-template-columns: repeat(2, 1fr); }
.tenkw-legs.is-4 { grid-template-columns: repeat(4, 1fr); }
:is(.tenkw-main, .is-root-container) .tenkw-leg ul { list-style: none; padding: 0; color: var(--paper-dim); line-height: 1.7; }

/* Rows: capability or credit on the left, what it means on the right */
.tenkw-rows { border-bottom: 2px solid rgba(249,166,22,.4); }
.tenkw-row {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 12px 40px; align-items: baseline;
	padding: clamp(22px, 2.4vw, 32px) 0; border-top: 2px solid rgba(249,166,22,.4);
}
.tenkw-row > p { color: var(--paper-dim); font-size: var(--wp--preset--font-size--lead); }

/* Plain route rows (no links), for lists like booking venues */
.tenkw-routes.is-plain li {
	padding: 14px 0; border-top: 2px solid var(--ink);
	font-family: var(--mono); font-stretch: 112.5%; font-weight: 600;
	text-transform: uppercase; letter-spacing: .1em; font-size: 12.5px; line-height: 1.9;
}
.tenkw-routes.is-plain li:last-child { border-bottom: 2px solid var(--ink); }

/* Media placeholders outside the homepage reel */
.tenkw-media > .tenkw-tag, .tenkw-photo > .tenkw-tag { position: absolute; top: clamp(18px, 2vw, 28px); left: clamp(20px, 3vw, 44px); right: 20px; margin: 0; color: var(--amber); }

/* Closing band with a longer headline word ("REPRESENTED", 9.76em) */
:is(.tenkw-main, .is-root-container) .tenkw-close.is-long .tenkw-close-title { font-size: min(124px, calc((60cqi - 2 * var(--pad)) / 10.1)); }

/* Wide cards (talent listing, principals): three across at full width, like the homepage cards */
:is(.tenkw-main, .is-root-container) .tenkw-cards.is-wide { grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); }

/* Litany: About's list of everything that gets the music's attention */
:is(.tenkw-main, .is-root-container) .tenkw-litany p {
	font-family: var(--display); font-stretch: 118%; font-weight: 850; line-height: 1.04;
	font-size: clamp(26px, 3.4vw, 52px); color: var(--paper);
}
:is(.tenkw-main, .is-root-container) .tenkw-litany + .tenkw-statement { margin-top: var(--wp--preset--spacing--60); }

/* Form slot: a marked panel waiting for the Gravity Forms form */
.tenkw-form-slot {
	background: var(--panel); border: 2px dashed rgba(249,166,22,.6);
	border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R);
	padding: clamp(28px, 3vw, 48px); min-height: 360px; color: var(--amber);
}
.tenkw-form-slot p { max-width: 60ch; }
:is(.tenkw-main, .is-root-container) .tenkw-leg .tenkw-textlink a { display: inline-block; }
#inquiry-form { scroll-margin-top: 24px; }

/* Split head that reads top-down (bio) */
.tenkw-sec-head.is-split.is-top { align-items: start; }
:is(.tenkw-main, .is-root-container) .tenkw-sec-head.is-split .tenkw-prose > p + p { margin-top: 1em; }
.tenkw-prose { max-width: 60ch; }

/* Video or audio beside photography */
.tenkw-media-row { display: grid; grid-template-columns: 1.55fr 1fr; gap: var(--pgap); align-items: stretch; }
.tenkw-photo {
	position: relative; background: var(--panel); border: var(--line) solid var(--amber); overflow: hidden;
	border-radius: var(--frame-r) var(--frame-Rc) var(--frame-r) var(--frame-Rc);
}

/* Placeholder pages (designed in later tasks) */
.tenkw-page-head { padding-bottom: 40px; }
:is(.tenkw-main, .is-root-container) .tenkw-page-head > * + * { margin-top: 22px; }
.tenkw-prose > * + * { margin-block-start: 1.1em; }
:is(.tenkw-main, .is-root-container) .tenkw-archive-list { list-style: none; padding: 0; display: grid; gap: 12px; }
.tenkw-archive-list a { color: var(--amber); text-decoration: none; }

/* Motion: "powering up". See docs/design-system.md, section 8.
   Hidden start states exist only under .tenkw-motion, which the head script adds when motion is allowed
   and removes again if the main script has not started within 2.5s. No JS, slow JS or reduced motion
   means every element simply renders in its final state. Only transform and opacity animate. */

/* The star ignites over the tower (hero only), then the rings breathe very slowly. */
@media (prefers-reduced-motion: no-preference) {
	.js .tenkw-hero-art img { animation: tenkw-power 2.2s cubic-bezier(.3,.1,.2,1) .15s both; }
	.js .tenkw-ignite .flare { transform-box: fill-box; transform-origin: center; animation: tenkw-flare 1.9s cubic-bezier(.2,.7,.2,1) .5s both; }
	.js .tenkw-ignite .bloom { animation: tenkw-bloom 2.6s ease-out .45s both; }
	.js .tenkw-ignite .ring {
		stroke-dasharray: 1; stroke-dashoffset: 1;
		animation: tenkw-trace 1.5s cubic-bezier(.6,0,.2,1) 1.1s both, tenkw-ringfade 1s ease 2.6s forwards, tenkw-ringpulse 8s ease-in-out 3.8s infinite;
	}
	.js .tenkw-ignite .ring + .ring { animation-delay: 1.35s, 2.8s, 4.2s; }
}
@keyframes tenkw-power { from { filter: brightness(.34) saturate(.6); } 60% { filter: brightness(.8) saturate(.9); } to { filter: none; } }
@keyframes tenkw-flare { 0% { transform: scale(0); opacity: 0; } 30% { opacity: .85; } 55% { transform: scale(1.06); opacity: .75; } 100% { transform: scale(1); opacity: 0; } }
@keyframes tenkw-bloom { 0% { opacity: 0; transform: scale(.4); } 35% { opacity: .95; } 100% { opacity: 0; transform: scale(1.6); } }
@keyframes tenkw-trace { to { stroke-dashoffset: 0; } }
@keyframes tenkw-ringfade { to { opacity: 0; } }
@keyframes tenkw-ringpulse { 0%, 100% { opacity: 0; } 50% { opacity: .3; } }
.tenkw-ignite .flare, .tenkw-ignite .bloom, .tenkw-ignite .ring { opacity: 0; }
.tenkw-ignite .bloom { transform-box: fill-box; transform-origin: center; }

@media (prefers-reduced-motion: no-preference) {
	/* Content rises into place: 16px and opacity, 600ms, staggered 80ms (--tk-i set by the script), once. */
	.tenkw-motion :is(
		:is(.tenkw-main, .is-root-container) .tenkw-sec, :is(.tenkw-main, .is-root-container) .tenkw-close-wrap, .tenkw-foot,
		.tenkw-flag, .tenkw-phone-sec, .tenkw-legs, .tenkw-cards, .tenkw-people, .tenkw-people-list,
		.tenkw-rows, .tenkw-close, .tenkw-media-row, .tenkw-litany
	) > * {
		transition: opacity 600ms cubic-bezier(.2,.7,.2,1), transform 600ms cubic-bezier(.2,.7,.2,1);
		transition-delay: calc(var(--tk-i, 0) * 80ms);
	}
	.tenkw-motion :is(
		:is(.tenkw-main, .is-root-container) .tenkw-sec, :is(.tenkw-main, .is-root-container) .tenkw-close-wrap, .tenkw-foot,
		.tenkw-flag, .tenkw-phone-sec, .tenkw-legs, .tenkw-cards, .tenkw-people, .tenkw-people-list,
		.tenkw-rows, .tenkw-close, .tenkw-media-row, .tenkw-litany
	) > :not(.is-in) { opacity: 0; transform: translateY(16px); }
	/* A panel is itself a rising item, so its outline and fill reveal first and its contents follow. */

	/* Gradient bars charge up like a meter filling, from the bottom. */
	.tenkw-motion .tenkw-gbar, .tenkw-motion .tenkw-hero-copy::before, .tenkw-motion .tenkw-page-hero-copy::before {
		transform-origin: 50% 100%; transition: transform 1100ms cubic-bezier(.25,.8,.25,1) 150ms;
	}
	.tenkw-motion .tenkw-gbar:not(.is-in),
	.tenkw-motion .tenkw-hero-copy:not(.is-in)::before,
	.tenkw-motion .tenkw-page-hero-copy:not(.is-in)::before { transform: scaleY(0); }

	/* Mono label stacks type on, line by line. */
	.tenkw-motion .tenkw-stack:not(.is-in) > li { opacity: 0; }
	.tenkw-motion .tenkw-stack.is-in > li { animation: tenkw-type 320ms steps(1, end) both; animation-delay: calc(var(--tk-line, 0) * 140ms + 200ms); }

	/* The strip wordmark powers on like a sign, once. */
	.tenkw-motion .tenkw-strip .tenkw-wm:not(.is-in) { opacity: .12; }
	.tenkw-motion .tenkw-strip .tenkw-wm.is-in { animation: tenkw-flicker 1100ms linear 250ms both; }
}
@keyframes tenkw-type { 0% { opacity: 0; } 25% { opacity: 1; } 50% { opacity: .35; } 75%, 100% { opacity: 1; } }
@keyframes tenkw-flicker {
	0% { opacity: .12; } 8% { opacity: 1; } 12% { opacity: .2; } 20% { opacity: .9; } 24% { opacity: .3; }
	34% { opacity: 1; } 40% { opacity: .6; } 46%, 100% { opacity: 1; }
}

/* Responsive */
@media (max-width: 1180px) {
	.tenkw-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tenkw-people > .tenkw-represented { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
	.tenkw-sec-head.is-split, .tenkw-flag, .tenkw-close { grid-template-columns: 1fr; }
	.tenkw-phone-sec { grid-template-columns: 1fr; row-gap: 48px; }
	.tenkw-phone-body { grid-column: 1; grid-row: 1; }
	.tenkw-phone-wrap { grid-column: 1; grid-row: 2; }
	.tenkw-legs { grid-template-columns: 1fr; row-gap: calc(56px + var(--line)); }
	.tenkw-leg + .tenkw-leg::before { top: calc(-28px - var(--line)); bottom: auto; left: 0; right: 0; width: auto; height: var(--line); }
	.tenkw-close-right { border-left: 0; border-top: 3px solid var(--ink); }
	.tenkw-close { grid-template-rows: none; row-gap: 0; }
	.tenkw-close > * { grid-row: auto; display: flex; flex-direction: column; gap: 28px; }
	:is(.tenkw-main, .is-root-container) .tenkw-close .tenkw-close-title { font-size: min(124px, calc((100cqi - 2 * var(--pad)) / 8.4)); }
}
/* Core navigation collapses at 600px; the design collapses at 760px. */
@media (min-width: 600px) and (max-width: 760px) {
	.tenkw-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.tenkw-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 760px) {
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 0; }
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding: 90px var(--gutter) 40px; }
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: 6px; }
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: 22px; right: var(--gutter); }
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-family: var(--display); font-stretch: 120%; font-weight: 850; font-size: 34px;
		letter-spacing: 0; text-transform: none; color: var(--amber); padding: 0; line-height: 1.55;
	}
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open .tenkw-nav-cta > .wp-block-navigation-item__content { border: 0; padding: 0; }
	.tenkw-nav .wp-block-navigation__responsive-container.is-menu-open .tenkw-nav-cta > .wp-block-navigation-item__content:hover { background: none; }

	.tenkw-hero-frame { grid-template-columns: 1fr; min-height: 0; border-radius: var(--frame-r) var(--frame-R) var(--frame-r) var(--frame-R); }
	.tenkw-hero-art { order: -1; aspect-ratio: 4 / 4.6; }
	.tenkw-hero-copy { border-right: 0; border-top: var(--line) solid var(--amber); padding: 26px 18px 30px 14px; column-gap: 16px; grid-template-columns: 8px 1fr; }
	.tenkw-hero-copy::before { height: 100%; min-height: 0; }
	.tenkw-hero-copy > .tenkw-g-labels { display: none; }
	.tenkw-headline-group { padding-top: 0; }
	.tenkw-ctas .wp-block-button { flex: 1 1 100%; }
	.tenkw-ctas .wp-block-button__link { width: 100%; }
	.tenkw-pill { display: none; }
	/* Mobile strip: lockup on top, slogan row beneath, one ink rule between. */
	:is(.tenkw-main, .is-root-container) .tenkw-strip { grid-template-columns: 1fr; padding: 16px 18px; }
	.tenkw-strip .tenkw-cell { padding: 0; }
	.tenkw-strip .tenkw-lockup { border-right: 0; border-bottom: 3px solid var(--ink); padding-bottom: 4px; }
	.tenkw-strip .tenkw-slogan { padding-top: 16px; }
	.tenkw-media { aspect-ratio: 4 / 3; }
	.tenkw-people { grid-template-columns: minmax(0, 1fr); }
	.tenkw-phone-wrap { justify-self: center; }
	:is(.tenkw-main, .is-root-container) .tenkw-close-left > p:last-child { font-size: 16px; }
	.tenkw-routes a { flex-direction: column; gap: 2px; text-align: left; }
	.tenkw-foot-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1180px) {
	.tenkw-legs.is-4 { grid-template-columns: repeat(2, 1fr); row-gap: calc(56px + var(--line)); }
	.tenkw-legs.is-4 > .tenkw-leg:nth-child(odd)::before { display: none; }
	.tenkw-legs.is-4 > .tenkw-leg:nth-child(n+3)::after {
		content: ""; position: absolute; top: calc(-28px - var(--line)); left: 0; right: 0; height: var(--line); background: var(--amber);
	}
	.tenkw-legs.is-4 > .tenkw-leg:nth-child(3)::after { right: calc(var(--lgap) * -2 - var(--line)); }
}
@media (max-width: 960px) {
	.tenkw-legs.is-2, .tenkw-legs.is-4 { grid-template-columns: 1fr; }
	.tenkw-legs.is-4 > .tenkw-leg:nth-child(odd)::before { display: block; }
	.tenkw-legs.is-4 > .tenkw-leg::after { display: none; }
	:is(.tenkw-main, .is-root-container) .tenkw-page-hero.has-media { grid-template-columns: 1fr; }
	.tenkw-page-hero-media, .tenkw-page-hero > .tenkw-portrait { order: -1; border-left: 0; border-bottom: var(--line) solid var(--amber); aspect-ratio: 4 / 3; height: auto; }
}
@media (max-width: 760px) {
	:is(.tenkw-main, .is-root-container) .tenkw-page-hero { min-height: 0; }
	.tenkw-page-hero-copy { --bar: 8px; --bar-gap: 16px; --pad-l: 14px; --pad-t: 26px; padding-right: 18px; padding-bottom: 30px; }
	.tenkw-page-hero-copy::before { height: auto; bottom: 30px; min-height: 0; }
	:is(.tenkw-main, .is-root-container) .tenkw-page-hero-foot { grid-template-columns: 1fr; padding-top: 28px; }
	:is(.tenkw-main, .is-root-container) .tenkw-hero-credit { text-align: left; justify-self: start; }
	.tenkw-row { grid-template-columns: 1fr; }
	.tenkw-portrait { aspect-ratio: 4 / 3; }
	.tenkw-media-row { grid-template-columns: 1fr; }
	.tenkw-photo { aspect-ratio: 4 / 3; }
}
@media (max-width: 960px) {
	:is(.tenkw-main, .is-root-container) .tenkw-close.is-long .tenkw-close-title { font-size: min(124px, calc((100cqi - 2 * var(--pad)) / 10.1)); }
}

/* Editor: let server-rendered blocks sit in the layout like they do on the front end. */
.tenkw-graphic-editor, .tenkw-graphic-editor > div { display: contents; }
