/*
Theme Name:  UNiiVERSE
Theme URI:   https://uniiverse.works
Template:    lamoureux
Author:      Lamoureux Lane
Description: UNiiVERSE — local work that fits around your timetable, for eighteen to twenty-five. This file holds tokens and nothing else; the look is assembled from them in assets/css/uniiverse.css.
Version:     0.28.0
Requires PHP: 8.2
Text Domain: uniiverse
*/

:root {
	/*
	 * ── HER RULING, 2 SEPTEMBER 2026 ────────────────────────────────────────
	 *
	 * **Why is it so dark? I said you can use some dark, but there's got to be
	 * pink, white, and red.**
	 *
	 * It was very nearly black on every screen — #170810 ground with small
	 * light text, and the pink and the red only ever appearing as headings a
	 * few words long. Dark was not an accent here, it was the whole world.
	 *
	 * So the ground is white with a blush in it, the ink is a deep plum that
	 * reads at any size, pink carries the surfaces, and red does the work it
	 * is good at — the thing you are meant to press, and the word you are meant
	 * to see first.
	 *
	 * **The dark is kept and used on purpose**: her entrance, and the band at
	 * the foot. Somewhere to arrive and somewhere to land, rather than
	 * everywhere.
	 */

	/* RED — the strongest thing on any screen, used least. */
	--purple: #E90255;
	--purple-lit: #FF6FA8;
	--purple-mid: #FF2E7E;
	--purple-deep: #C80047;

	/* PINK — the surfaces, and the accent that carries the writing. */
	--mint: #FF3F8E;
	--mint-lit: #FF8CBB;
	--mint-deep: #E90255;
	--blush: #FFEDF3;
	--blush-lit: #FFF7FA;

	/* INK, and the white it sits on. */
	--enamel: #111111;
	--cream: #FFFFFF;
	--keyline: rgba(200, 16, 60, .16);

	--font-util: 'Manrope', system-ui, sans-serif;
	--font-head: 'Outfit', system-ui, sans-serif;
	--font-say: 'Outfit', system-ui, sans-serif;
	--font-hand: 'Caveat', 'Segoe Script', cursive;

	/*
	 * ── HER WORDS, RECORDED HERE BECAUSE THEY HAVE NOT BEEN ACTED ON ────────
	 *
	 * **It's way too dark though.** Said about this world, kept in a note, and
	 * this ground is still #170810, which is very nearly black. Her law of
	 * 2 September makes it plainer: never offer her a dark colour, and a world
	 * she BUILT dark stays as she built it — this one she did not build, she
	 * rejected.
	 *
	 * **IT IS NOT A ONE-TOKEN CHANGE AND IT WAS TRIED.** Lifting this to a
	 * light ground was measured first: ninety-five rules across this theme
	 * paint their text in `--enamel`, which is #F6F1F8. Every word on the site
	 * would have gone white on white. The neon she praised dies on a light
	 * ground too.
	 *
	 * So it is a palette inversion rather than a colour swap, and it needs her
	 * eye on a real screen rather than a guess. It has gone to her. **Anything
	 * that changes this must move the ink in the same act.**
	 */
	--ground: #FFFFFF;
	--measure: 1180px;

	--satin: linear-gradient(118deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.06) 22%,
		rgba(0,0,0,.14) 48%, rgba(255,255,255,.20) 66%, rgba(0,0,0,.10) 84%, rgba(255,255,255,.08) 100%);

	--bloom: radial-gradient(58% 52% at 16% 8%, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 62%),
		radial-gradient(54% 48% at 88% 96%, rgba(255,158,196,.20) 0%, rgba(255,158,196,0) 64%),
		radial-gradient(46% 44% at 96% 6%, rgba(255,158,196,.30) 0%, rgba(255,158,196,0) 62%);
	--bloom-soft: radial-gradient(56% 50% at 14% 6%, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 62%),
		radial-gradient(50% 46% at 90% 98%, rgba(255,158,196,.16) 0%, rgba(255,158,196,0) 64%);

	--lift: 0 2px 18px rgba(200,16,60,.22), 0 1px 3px rgba(200,16,60,.14);
	--surface-shadow: inset 0 2px 0 rgba(255,255,255,.42), 0 20px 44px rgba(200,16,60,.18);
	--surface-shadow-soft: inset 0 2px 0 rgba(255,255,255,.44), 0 12px 26px rgba(200,16,60,.14);

	--entrance: linear-gradient(160deg, #FF2E7E 0%, #E90255 55%, #C80047 100%);
	--entrance-gap: clamp(8px, 1.4vw, 16px);
	--entrance-fade-height: min(26svh, 14rem);
	--entrance-fade: linear-gradient(to bottom, rgba(217,16,63,0) 0%, rgba(217,16,63,.55) 58%, var(--purple-deep) 100%);
	--mark-ratio: 1150 / 750;
	--mark-space: clamp(52px, 11vw, 112px);
	--mark-shadow: drop-shadow(0 18px 36px rgba(200,16,60,.22));
	--anchor-space: clamp(56px, 11vw, 116px);
	--anchor-ink: var(--mint-lit);

	--float-time: 620ms;
	--float-ease: cubic-bezier(.22, .61, .36, 1);
	--float-rise: 22px;
	--float-stagger: 110ms;

	/*
	 * ── THE FIELDS WERE PURPLE-ON-PURPLE, FROM THE OTHER WORLD ─────────────
	 *
	 * Left over from LocaLilly, and invisible while the whole page was dark.
	 * On a white ground they were a maroon box with maroon writing in it. A
	 * field somebody types their name into is white, with a red keyline so it
	 * can be found.
	 */
	--seek-ground: #FFFFFF;
	--seek-sheen: radial-gradient(80% 120% at 12% -10%, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 55%),
		radial-gradient(60% 100% at 88% 120%, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 60%);
	--seek-rule: rgba(255,255,255,.36);
	--seek-ink: #D9103F;
	--seek-placeholder: rgba(255,255,255,.96);
	/* The thing you press is red, and the writing on it is white. */
	--seek-button: var(--purple);
	--seek-button-ink: #FFF3F7;
	--chip-ink: rgba(246,241,248,.92);
	--chip-ink-hover: #fff;
	--chip-rule: rgba(246,241,248,.42);
	--chip-rule-hover: var(--mint);
	--door-ink: #fff;

	--row-ground: var(--purple);
	--row-ink: var(--cream);
	--row-ink-soft: #E8103E;
	--num-ground: var(--mint);
	--num-ink: #FF1D6C;

	--top-ground: rgba(61, 10, 30, .94);
	--top-rule: rgba(246, 241, 248, .16);
	--chip-current: var(--mint);
	--count-ink: #fff;
	--count-figure: var(--mint);
	--count-note: #DFC6EF;
	--card-ink: var(--cream);
	--card-title-ink: #fff;
	--card-body-ink: rgba(246, 241, 248, .94);
	--card-meta-ink: rgba(246, 241, 248, .90);
	--card-pay-ink: #fff;
	--card-rule: rgba(246, 241, 248, .26);
	--card-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 14px 30px rgba(20,4,8,.30);
	--card-shadow-lift: inset 0 1px 0 rgba(255,255,255,.32), 0 22px 44px rgba(200,16,60,.18);
	--org-ink: #fff;
	--live-ink: rgba(246, 241, 248, .78);
	--pill-ink: #FF1D6C;

	--ma-ground: radial-gradient(60% 55% at 50% 10%, rgba(255,158,196,.50) 0%, rgba(255,158,196,0) 66%), var(--purple-mid);
	--act-ink: #FFF3F7;
	--act-ground: var(--purple);
	--act-shadow: 0 2px 6px rgba(200, 16, 60, .28);
	--act-quiet-rule: rgba(246, 241, 248, .42);
	--note-ground: var(--purple-deep);
	--note-ink: #D4B3EC;

	--foot-ground: var(--purple-deep);
	--foot-ink: #C79FE6;
	--skip-ground: var(--mint);
	--skip-ink: #FF1D6C;
	--focus: var(--mint-lit);
}

.uv-word {
	display: block;
	margin: 0 0 1.25rem;
	padding: 0.9rem 1.05rem;
	border-left: 3px solid var(--ll-mint);
	border-radius: 10px;
	background: var(--ll-enamel);
	color: var(--ll-deep);
	font-size: 1.02rem;
	line-height: 1.5;
	text-wrap: pretty;
}

@media (prefers-reduced-motion: no-preference) {
	.uv-word { animation: uv-word-in 320ms ease-out both; }
}

@keyframes uv-word-in {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: none; }
}

.askback-hold { margin: 3rem 0 0; }

.askback {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 1.4rem 1.15rem 1.5rem;
	border: 1px solid var(--ll-keyline);
	border-radius: 14px;
	background: var(--ll-enamel);
}

.askback-ask { margin: 0; font-size: 1.22rem; line-height: 1.25; color: var(--ll-deep); }
.askback-why { margin: 0 0 0.6rem; font-size: 1rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }
.askback-label { font-size: 0.95rem; color: var(--ll-deep); }

.askback-field {
	width: 100%;
	padding: 0.72rem 0.8rem;
	border: 1px solid var(--ll-keyline);
	border-radius: 10px;
	background: #fff;
	color: var(--ll-deep);
	font: inherit;
	font-size: 1rem;
}

.askback-field:focus-visible { outline: 3px solid var(--ll-mint); outline-offset: 1px; }

.askback-go {
	margin-top: 0.9rem;
	padding: 0.85rem 1.1rem;
	border: 0;
	border-radius: 999px;
	background: var(--ll-purple);
	color: #fff;
	font: inherit;
	font-size: 1.03rem;
	cursor: pointer;
}

.who-sees {
	margin: 0.35rem 0 0;
	padding-left: 0.7rem;
	border-left: 2px solid var(--ll-mint);
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--ll-mid);
	text-wrap: pretty;
}

.sees-hold { margin: 3rem 0 0; }
.sees-ask { margin: 0 0 0.35rem; font-size: 1.3rem; line-height: 1.2; color: var(--ll-deep); }
.sees-why { margin: 0 0 1.1rem; font-size: 1rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }

.sees { margin: 0; }

.sees-what {
	margin: 1.05rem 0 0.2rem;
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--ll-deep);
}

.sees-said {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--ll-mid);
	text-wrap: pretty;
}

.legal { padding: 2rem 1.05rem 4rem; max-width: 44rem; margin: 0 auto; }
.legal-title { margin: 0 0 0.4rem; font-size: 2rem; line-height: 1.12; color: var(--ll-deep); }
.legal-under { margin: 0 0 2rem; font-size: 1.05rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }
.legal-part { margin: 0 0 1.6rem; }
.legal-head { margin: 0 0 0.35rem; font-size: 1.18rem; line-height: 1.25; color: var(--ll-deep); }
.legal-said { margin: 0; font-size: 1.02rem; line-height: 1.55; color: var(--ll-mid); text-wrap: pretty; }

.legal-fifth {
	margin: 2.4rem 0 0;
	padding: 1.5rem 1.15rem;
	border-left: 3px solid var(--ll-mint);
	border-radius: 12px;
	background: var(--ll-enamel);
}

.legal-fifth-head { margin: 0 0 0.4rem; font-size: 1.32rem; line-height: 1.2; color: var(--ll-deep); }
.legal-fifth-open { margin: 0 0 1.1rem; font-size: 1.05rem; line-height: 1.5; color: var(--ll-deep); text-wrap: pretty; }
.legal-who { margin: 2.6rem 0 0; font-size: 0.95rem; color: var(--ll-mid); }

.opening { margin: 2rem 0 1.4rem; padding: 1.3rem 1.1rem; border: 1px solid var(--ll-keyline); border-radius: 14px; background: var(--ll-enamel); }
.opening-word { margin: 0 0 0.75rem; font-size: 1.1rem; line-height: 1.35; color: var(--ll-deep); text-wrap: pretty; }
.opening-go { display: block; width: 100%; padding: 0.9rem 1.1rem; border: 0; border-radius: 999px; background: var(--ll-mint); color: var(--ll-deep); font: inherit; font-size: 1.05rem; font-weight: 600; cursor: pointer; }
.opening-go--close { background: transparent; border: 1px solid var(--ll-keyline); color: var(--ll-mid); font-weight: 400; }
.opening-why { margin: 0.7rem 0 0; font-size: 0.95rem; line-height: 1.45; color: var(--ll-mid); text-wrap: pretty; }

.found { margin: 0 0 2.2rem; }
.found-head { margin: 0 0 0.9rem; font-size: 1.35rem; line-height: 1.2; }
.found-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.found-go { display: block; padding: 1rem 1.05rem; border: 1px solid var(--ll-keyline); border-radius: 14px; background: var(--ll-enamel); text-decoration: none; }
.found-name { display: block; font-size: 1.15rem; font-weight: 600; color: var(--ll-deep); }
.found-line { display: block; margin-top: 0.15rem; font-size: 1rem; color: var(--ll-mid); }
.found-where { display: block; margin-top: 0.35rem; font-size: 0.95rem; color: var(--ll-mid); }
.found-does { display: block; margin-top: 0.3rem; font-size: 0.92rem; color: var(--ll-mid); }
.found-after { margin: 1rem 0 0; font-size: 0.95rem; line-height: 1.45; color: var(--ll-mid); text-wrap: pretty; }

.them { padding: 1.6rem 1.05rem 4rem; max-width: 44rem; margin: 0 auto; }
.them-name { margin: 0; font-size: 2rem; line-height: 1.1; }
.them-line { margin: 0.25rem 0 0; font-size: 1.08rem; color: var(--ll-mid); }
.them-where { margin: 0.5rem 0 0; font-size: 1rem; color: var(--ll-mid); }
.them-says { margin: 1.6rem 0 0.35rem; padding-left: 0.9rem; border-left: 3px solid var(--ll-mint); font-size: 1.06rem; line-height: 1.55; text-wrap: pretty; }
.them-says-who { margin: 0 0 1.4rem; font-size: 0.92rem; color: var(--ll-mid); }
.them-head { margin: 1.8rem 0 0.5rem; font-size: 1.22rem; line-height: 1.25; }
.them-does, .them-asks, .them-pics { list-style: none; margin: 0; padding: 0; }
.them-does li { display: inline-block; margin: 0 0.4rem 0.4rem 0; padding: 0.4rem 0.75rem; border-radius: 999px; background: var(--ll-enamel); font-size: 0.98rem; }
.them-asks li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid var(--ll-keyline); font-size: 1.02rem; }
.them-asks-who, .them-free { margin: 0.6rem 0 0; font-size: 1rem; color: var(--ll-mid); }
.them-pics { display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: 0.6rem; }
.them-pics img { width: 100%; height: auto; border-radius: 12px; display: block; }
.them-reach { margin: 2.4rem 0 0; padding: 1.3rem 1.1rem; border-radius: 14px; background: var(--ll-enamel); }
.them-reach-why { margin: 0 0 1rem; font-size: 1rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }

.askback-said {
	width: 100%;
	min-height: 8.5rem;
	padding: 0.8rem 0.85rem;
	border: 1px solid var(--ll-keyline);
	border-radius: 12px;
	background: #fff;
	color: var(--ll-deep);
	font: inherit;
	font-size: 1.02rem;
	line-height: 1.5;
	resize: vertical;
}
.askback-said:focus-visible { outline: 3px solid var(--ll-mint); outline-offset: 1px; }
.askback-also { margin: 0.85rem 0 0; font-size: 0.95rem; line-height: 1.45; color: var(--ll-mid); text-wrap: pretty; }

.sampler { padding: 1.5rem 1.05rem 5rem; max-width: 44rem; margin: 0 auto; }
.sampler-note { margin: 0 0 0.8rem; font-size: 1rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }
.sampler-jump { list-style: none; margin: 0 0 2.4rem; padding: 0; display: grid; gap: 0.4rem; }
.sampler-jump a { color: var(--ll-mint); font-size: 1rem; }
.sampler-head { margin: 2.6rem 0 0.3rem; font-size: 1.45rem; line-height: 1.2; color: var(--ll-deep); }
.sampler-why { margin: 0 0 1.4rem; font-size: 1rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }
.sampler-why--small { margin: 0 0 0.7rem; font-size: 0.95rem; }
.sampler-one { margin: 0 0 2.4rem; }
.sampler-tag { margin: 0 0 0.5rem; font-size: 0.82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ll-mid); }

.sampler-hero {
	padding: 1.6rem 1.15rem 1.8rem;
	border-radius: 14px;
	background: var(--ll-deep);
	color: #fff;
	text-align: center;
}
.sampler-hero .head { margin: 0 0 0.9rem; }

.lede--weighty {
	margin: 0;
	font-size: clamp(1.12rem, 4.4vw, 1.34rem);
	line-height: 1.35;
	font-weight: 500;
	color: #fff;
	text-wrap: balance;
}
.lede--weighty[contenteditable]:focus-visible { outline: 3px solid var(--ll-mint); outline-offset: 4px; }

.sign-legend {
	margin: 0 0 0.15rem;
	font-family: var(--font-plate, inherit);
	font-size: clamp(1.05rem, 4.6vw, 1.3rem);
	letter-spacing: .06em;
	text-align: center;
	color: var(--enamel, #f6f1e7);
}
.sign-under {
	margin: 0 0 0.7rem;
	font-size: 0.8rem;
	text-align: center;
	color: var(--enamel, #f6f1e7);
	opacity: .85;
}
.sign--full .seek, .sign--named .seek { margin-top: 0.55rem; }

.sampler--walk .sampler-jump--row { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-bottom: 1rem; }
.sampler--walk [aria-current="page"] { color: var(--ll-deep); font-weight: 600; text-decoration: none; }
.parent-head { margin: 1.6rem 0 0.6rem; font-size: clamp(1.6rem, 6.6vw, 2rem); line-height: 1.14; color: var(--ll-deep); text-wrap: balance; }
.parent-lede { margin: 0 0 0.8rem; font-size: 1.06rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }
.parent-lede--strong { color: var(--ll-deep); font-weight: 500; }
.parent-sub { margin: 2rem 0 0.5rem; font-size: 1.22rem; line-height: 1.25; color: var(--ll-deep); }
.parent-said { margin: 0 0 0.85rem; font-size: 1.03rem; line-height: 1.55; color: var(--ll-mid); text-wrap: pretty; }
.parent-said strong { color: var(--ll-deep); }
.sampler-rule { margin: 2.6rem 0 0; padding: 1.3rem 1.1rem; border: 1px solid var(--ll-keyline); border-radius: 14px; background: var(--ll-enamel); }
.sampler--walk .opening-go { display: inline-block; margin-top: 1.4rem; text-decoration: none; text-align: center; }

.seek-first {
	max-width: min(100%, 60rem);
	margin: 0 auto 0.85rem;
	padding: 0 0.2rem;
	font-size: clamp(15px, 3.9vw, 17px);
	line-height: 1.5;
	color: var(--enamel, #f6f1e7);
	text-align: center;
	text-wrap: pretty;
	opacity: .95;
}

.sampler,
.sampler--walk {
	color: var(--enamel, #f6f1e7);
}

.sampler .sampler-head,
.sampler .sampler-note,
.sampler .sampler-why,
.sampler .sampler-tag,
.sampler .parent-head,
.sampler .parent-sub,
.sampler .parent-lede,
.sampler .parent-said,
.sampler .sees-what,
.sampler .sees-said,
.sampler .them-head,
.sampler .them-line,
.sampler .them-where,
.sampler .them-says,
.sampler .them-says-who,
.sampler .them-free,
.sampler .them-asks li,
.sampler .them-asks-who {
	color: var(--enamel, #f6f1e7);
}

.sampler .sampler-why,
.sampler .sampler-note,
.sampler .them-says-who,
.sampler .them-asks-who {
	opacity: .88;
}

.sampler .parent-said strong,
.sampler .parent-lede--strong {
	color: #fff;
}

.sampler .sampler-rule {
	background: rgba(255, 255, 255, .07);
	border-color: rgba(255, 255, 255, .22);
}

.sampler .sampler-rule .sampler-why,
.sampler .sampler-rule .sampler-tag {
	color: var(--enamel, #f6f1e7);
}

.sampler .them-does li {
	background: rgba(255, 255, 255, .12);
	color: var(--enamel, #f6f1e7);
}

.sampler .them-asks li { border-bottom-color: rgba(255, 255, 255, .18); }
.sampler .sampler-jump a { color: var(--ll-mint, #7fe3c4); }

.firstword { margin: 2.4rem 0 0; padding: 1.4rem 1.15rem; border: 1px solid var(--ll-keyline); border-radius: 14px; background: var(--ll-enamel); }
.firstword-why { margin: 0 0 1rem; font-size: 1.02rem; line-height: 1.5; color: var(--ll-mid); text-wrap: pretty; }
.firstword-go { display: inline-block; padding: 0.85rem 1.2rem; border-radius: 999px; background: var(--ll-mint); color: var(--ll-deep); font-weight: 600; text-decoration: none; }
.firstword-form { display: grid; gap: 0.5rem; }

.legal,
.legal-title,
.legal-under,
.legal-head,
.legal-said,
.legal-who,
.sees-hold,
.sees-ask,
.sees-why,
.sees-what,
.sees-said,
.who-sees,
.them,
.them-head,
.them-line,
.them-where,
.them-says,
.them-says-who,
.them-free,
.them-asks li,
.them-asks-who,
.parent-head,
.parent-sub,
.parent-lede,
.parent-said {
	color: var(--enamel, #f6f1e7);
}

.legal-fifth,
.sees-hold .sees,
.them-reach {
	background: rgba(255, 255, 255, .07);
	border-color: rgba(255, 255, 255, .22);
}

.legal-fifth-head,
.legal-fifth-open { color: var(--enamel, #f6f1e7); }

.who-sees { border-left-color: var(--ll-mint); opacity: .92; }
.them-does li { background: rgba(255, 255, 255, .12); color: var(--enamel, #f6f1e7); }
.them-asks li { border-bottom-color: rgba(255, 255, 255, .18); }

.askback,
.opening,
.firstword { color: var(--ll-deep); }

:root {
	--ll-deep: var(--purple-deep);
	--ll-mid: var(--enamel);
	--ll-mint: var(--mint);
	--ll-enamel: rgba(255, 255, 255, .07);
	--ll-keyline: rgba(255, 255, 255, .22);
}
