.sunnys-maya-calendar {
	--maya-ink: #f8edcf;
	--maya-ink-muted: #c9bea2;
	--maya-night: #061713;
	--maya-night-deep: #020b09;
	--maya-jade: #123d31;
	--maya-jade-bright: #1f6a51;
	--maya-gold: #d8b35e;
	--maya-gold-bright: #ffe29a;
	--maya-active-line: rgba(255, 238, 187, .86);
	--maya-cinnabar: #bd5b3c;
	--maya-line: rgba(227, 194, 112, 0.28);
	--maya-panel: rgba(7, 26, 22, 0.82);
	position: relative;
	isolation: isolate;
	width: min(100%, 1080px);
	margin: clamp(22px, 4vw, 64px) auto;
	overflow: hidden;
	color: var(--maya-ink);
	font-family: "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
	background:
		radial-gradient(circle at 18% 16%, rgba(38, 111, 84, 0.38), transparent 34%),
		radial-gradient(circle at 82% 78%, rgba(162, 105, 42, 0.2), transparent 30%),
		linear-gradient(145deg, #0b2921 0%, var(--maya-night) 48%, var(--maya-night-deep) 100%);
	border: 1px solid rgba(225, 190, 107, 0.38);
	border-radius: clamp(20px, 3vw, 34px);
	box-shadow:
		0 36px 90px rgba(2, 10, 8, 0.36),
		inset 0 1px rgba(255, 238, 191, 0.12),
		inset 0 -1px rgba(0, 0, 0, 0.72);
	color-scheme: dark;
}

.sunnys-maya-calendar::before,
.sunnys-maya-calendar::after {
	position: absolute;
	z-index: -1;
	content: "";
	pointer-events: none;
}

.sunnys-maya-calendar::before {
	inset: 0;
	opacity: 0.22;
	background-image:
		linear-gradient(30deg, transparent 49%, rgba(255,255,255,.025) 50%, transparent 51%),
		linear-gradient(150deg, transparent 49%, rgba(216,179,94,.035) 50%, transparent 51%);
	background-size: 34px 58px;
	mix-blend-mode: screen;
}

.sunnys-maya-calendar::after {
	width: min(62vw, 760px);
	height: min(62vw, 760px);
	top: -44%;
	left: 50%;
	transform: translateX(-50%);
	border: 1px solid rgba(238, 201, 113, 0.14);
	border-radius: 50%;
	box-shadow:
		0 0 0 42px rgba(238, 201, 113, 0.025),
		0 0 0 96px rgba(238, 201, 113, 0.018);
}

.sunnys-maya-calendar *,
.sunnys-maya-calendar *::before,
.sunnys-maya-calendar *::after {
	box-sizing: border-box;
}

.sunnys-maya-calendar__atmosphere {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.sunnys-maya-calendar__shell {
	position: relative;
	z-index: 1;
	padding: clamp(24px, 4vw, 58px);
}

.sunnys-maya-calendar__header {
	max-width: 820px;
	margin: 0 0 clamp(26px, 4vw, 48px);
}

.sunnys-maya-calendar .sunnys-maya-calendar__eyebrow {
	margin: 0 0 10px;
	color: var(--maya-gold-bright);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(11px, 1vw, 13px);
	font-weight: 700;
	letter-spacing: 0.22em;
	line-height: 1.45;
}

.sunnys-maya-calendar__header h2 {
	margin: 0;
	color: var(--maya-ink);
	font-family: "Noto Serif SC", "Songti SC", Georgia, serif;
	font-size: clamp(34px, 5vw, 68px);
	font-weight: 650;
	letter-spacing: 0.035em;
	line-height: 1.08;
	text-shadow: 0 2px 24px rgba(244, 211, 134, 0.13);
}

.sunnys-maya-calendar__header > p:last-child {
	margin: 14px 0 0;
	color: var(--maya-ink-muted);
	font-size: clamp(15px, 1.5vw, 19px);
	line-height: 1.7;
}

.sunnys-maya-calendar__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(22px, 3vw, 44px);
	align-items: start;
}

.sunnys-maya-calendar__instrument {
	min-width: 0;
}

.sunnys-maya-calendar__assemblies {
	--maya-mesh-half-gap: 2.65px;
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 0;
	align-items: center;
}

.sunnys-maya-calendar__assemblies::before {
	position: absolute;
	z-index: 0;
	inset: 20% 1% 0;
	content: "";
	background:
		radial-gradient(ellipse at 25% 70%, rgba(0, 0, 0, .42), transparent 61%),
		radial-gradient(ellipse at 75% 70%, rgba(0, 0, 0, .42), transparent 61%);
	filter: blur(18px);
	pointer-events: none;
}

.sunnys-maya-calendar__assemblies::after {
	position: absolute;
	top: calc(50% + 19px);
	left: 50%;
	z-index: 2;
	width: calc(5.3px + .604%);
	height: calc(14.1% - 4px);
	content: "";
	transform: translate(-50%, -50%);
	background: var(--maya-active-line);
	clip-path: polygon(
		0 0,
		100% 0,
		calc(77.75% + 1.18px) 12.5%,
		calc(62.4% + 1.99px) 25%,
		calc(53.1% + 2.49px) 37.5%,
		calc(50% + 2.65px) 50%,
		calc(53.1% + 2.49px) 62.5%,
		calc(62.4% + 1.99px) 75%,
		calc(77.75% + 1.18px) 87.5%,
		100% 100%,
		0 100%,
		calc(22.25% - 1.18px) 87.5%,
		calc(37.6% - 1.99px) 75%,
		calc(46.9% - 2.49px) 62.5%,
		calc(50% - 2.65px) 50%,
		calc(46.9% - 2.49px) 37.5%,
		calc(37.6% - 1.99px) 25%,
		calc(22.25% - 1.18px) 12.5%
	);
	pointer-events: none;
}

.sunnys-maya-calendar__assembly {
	position: relative;
	z-index: 1;
	min-width: 0;
	margin: 0;
	transition: filter 280ms ease;
}

.sunnys-maya-calendar__assembly:focus-within {
	filter: brightness(1.06);
}

@media (hover: hover) and (pointer: fine) {
	.sunnys-maya-calendar__assembly:hover {
		filter: brightness(1.06);
	}
}

.sunnys-maya-calendar__assembly-heading {
	display: flex;
	gap: 12px;
	align-items: baseline;
	justify-content: center;
	min-height: 28px;
	margin: 0 0 10px;
	text-align: center;
}

.sunnys-maya-calendar__assembly-heading span {
	color: var(--maya-gold-bright);
	font-family: Georgia, serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.sunnys-maya-calendar__assembly-heading strong {
	color: var(--maya-ink-muted);
	font-size: 12px;
	font-weight: 500;
}

.sunnys-maya-calendar__dial-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	touch-action: auto;
}

.sunnys-maya-calendar__assembly:first-child .sunnys-maya-calendar__dial-wrap {
	transform: translateX(calc(1% - var(--maya-mesh-half-gap)));
}

.sunnys-maya-calendar__assembly:last-child .sunnys-maya-calendar__dial-wrap {
	transform: translateX(calc(var(--maya-mesh-half-gap) - 1%));
}

.sunnys-maya-calendar__dial {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	touch-action: auto;
	user-select: none;
	-webkit-user-select: none;
}

.sunnys-maya-calendar__dial-touch-layer {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
	touch-action: auto;
	user-select: none;
	-webkit-user-select: none;
	-webkit-tap-highlight-color: transparent;
}

.sunnys-maya-calendar .maya-wheel__touch-zone {
	fill: none;
	stroke: transparent;
	pointer-events: none;
	touch-action: auto;
	cursor: grab;
}

.sunnys-maya-calendar .maya-wheel__touch-zone--edge-extension {
	fill: transparent;
	stroke: none;
	pointer-events: none;
}

.sunnys-maya-calendar .maya-wheel__edge-intent-zone {
	fill: transparent;
	pointer-events: none;
	touch-action: auto;
	cursor: grab;
}

.sunnys-maya-calendar .maya-wheel__touch-zone.is-dragging,
.sunnys-maya-calendar .maya-wheel__edge-intent-zone.is-dragging {
	cursor: grabbing;
}

.sunnys-maya-calendar__dial-core {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-content: center;
	width: 25%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	text-align: center;
	background:
		radial-gradient(circle at 36% 28%, rgba(251, 224, 158, 0.2), transparent 20%),
		radial-gradient(circle, #174b3a 0%, #0b2c23 58%, #061814 100%);
	border: 1px solid rgba(255, 225, 147, 0.5);
	border-radius: 50%;
	box-shadow:
		0 0 0 5px rgba(4, 18, 14, 0.72),
		0 0 0 7px rgba(211, 169, 76, 0.24),
		inset 0 9px 18px rgba(255, 239, 193, 0.07),
		inset 0 -13px 18px rgba(0, 0, 0, 0.38),
		0 0 26px rgba(237, 190, 85, 0.16);
	pointer-events: none;
}

.sunnys-maya-calendar__dial-core::after {
	position: absolute;
	inset: -13%;
	content: "";
	border: 2px solid rgba(255, 218, 128, .68);
	border-radius: 50%;
	box-shadow: 0 0 34px rgba(255, 218, 128, .34);
	opacity: 0;
	transform: scale(.82);
	pointer-events: none;
}

.sunnys-maya-calendar__core-glyph {
	position: absolute;
	top: 13%;
	left: 13%;
	width: 74%;
	height: 74%;
	color: var(--maya-gold-bright);
	opacity: .13;
	filter: drop-shadow(0 0 9px rgba(255, 220, 126, .2));
}

.sunnys-maya-calendar__core-glyph--month {
	top: 13%;
	left: 13%;
	width: 74%;
	height: 74%;
	opacity: .16;
}

.sunnys-maya-calendar__core-number-glyph,
.sunnys-maya-calendar__dial-core strong,
.sunnys-maya-calendar__dial-core small {
	position: relative;
	z-index: 1;
	display: block;
}

.sunnys-maya-calendar__core-number-glyph {
	justify-self: center;
	width: clamp(25px, 3.1vw, 42px);
	height: clamp(29px, 3.55vw, 48px);
	color: var(--maya-gold-bright);
	filter: drop-shadow(0 0 7px rgba(255, 216, 116, .42));
}

.sunnys-maya-calendar__dial-core strong {
	margin-top: 4px;
	color: #fff4d8;
	font-family: Georgia, serif;
	font-size: clamp(10px, 1.25vw, 17px);
	letter-spacing: 0.075em;
	line-height: 1.1;
}

.sunnys-maya-calendar__dial-core small {
	margin-top: 4px;
	color: #bcad8b;
	font-size: clamp(8px, 0.9vw, 11px);
}

.sunnys-maya-calendar__gesture-help {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	max-width: 760px;
	margin: 18px auto 0;
	color: var(--maya-ink-muted);
	font-size: 13px;
	line-height: 1.65;
	text-align: center;
}

.sunnys-maya-calendar__gesture-help::before {
	width: 7px;
	height: 7px;
	content: "";
	background: var(--maya-gold);
	border-radius: 50%;
	box-shadow: 0 0 14px var(--maya-gold-bright);
}

/* SVG wheel primitives. */
.sunnys-maya-calendar .maya-wheel__stone-shadow {
	fill: #020907;
	opacity: .74;
}

.sunnys-maya-calendar .maya-wheel__outer-base,
.sunnys-maya-calendar .maya-wheel__inner-base {
	fill: none;
	stroke-linecap: round;
}

.sunnys-maya-calendar .maya-wheel__outer-base {
	stroke-width: var(--maya-wheel-outer-stroke, 104);
}

.sunnys-maya-calendar .maya-wheel__inner-base {
	stroke-width: var(--maya-wheel-inner-stroke, 84);
}

.sunnys-maya-calendar .maya-wheel__rim {
	fill: none;
	stroke: rgba(248, 212, 126, .48);
	stroke-width: 2;
}

.sunnys-maya-calendar .maya-wheel__rim--dark {
	stroke: rgba(0, 0, 0, .66);
	stroke-width: 5;
}

/* Creation-anchored Calendar Round progress follows the existing separator rim. */
.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-layer {
	--maya-progress-color: #72d6b2;
	--maya-progress-glow: rgba(114, 214, 178, .62);
	--maya-progress-flow-color: #d9fff1;
	pointer-events: none;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-layer[data-maya-progress-layer="haab"] {
	--maya-progress-color: #f6c85f;
	--maya-progress-glow: rgba(246, 200, 95, .62);
	--maya-progress-flow-color: #fff0b5;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-value {
	pointer-events: none;
	vector-effect: non-scaling-stroke;
	stroke: var(--maya-progress-color);
	stroke-width: 3.25;
	stroke-linecap: round;
	stroke-dasharray: none;
	filter: drop-shadow(0 0 3px var(--maya-progress-glow));
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow {
	pointer-events: none;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-mask {
	fill: none;
	stroke: #fff;
	stroke-width: 24;
	stroke-linecap: round;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-orbit {
	transform-box: view-box;
	transform-origin: 300px 300px;
	animation: maya-progress-flow 6s linear infinite;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-layer[data-maya-progress-layer="haab"] .maya-wheel__progress-flow-orbit {
	animation-direction: reverse;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-trail-stop {
	stop-color: var(--maya-progress-flow-color);
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-trail {
	fill: none;
	pointer-events: none;
	vector-effect: non-scaling-stroke;
	stroke-width: 4.25;
	stroke-linecap: round;
	filter: drop-shadow(0 0 2px var(--maya-progress-flow-color)) drop-shadow(0 0 4px var(--maya-progress-glow));
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-trail--mobile {
	display: none;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-head-halo {
	fill: var(--maya-progress-color);
	opacity: .38;
	filter: drop-shadow(0 0 4px var(--maya-progress-glow));
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-head-core {
	fill: var(--maya-progress-flow-color);
	stroke: var(--maya-progress-color);
	stroke-width: .8;
	vector-effect: non-scaling-stroke;
	filter: drop-shadow(0 0 3px var(--maya-progress-glow));
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-end {
	pointer-events: none;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-end-halo {
	fill: var(--maya-progress-color);
	opacity: .3;
	transform-box: fill-box;
	transform-origin: center;
	filter: drop-shadow(0 0 4px var(--maya-progress-glow));
	animation: maya-progress-end-pulse 2.1s ease-in-out infinite;
}

.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-end-core {
	fill: var(--maya-progress-flow-color);
	stroke: var(--maya-progress-color);
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
	filter: drop-shadow(0 0 3px var(--maya-progress-glow));
}

@keyframes maya-progress-flow {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

@keyframes maya-progress-end-pulse {
	0%,
	100% {
		opacity: .22;
		transform: scale(.9);
	}
	50% {
		opacity: .44;
		transform: scale(1.08);
	}
}

@media (prefers-reduced-motion: reduce) {
	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow {
		display: none;
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-end-halo {
		animation: none;
		opacity: .3;
		transform: none;
	}
}

.sunnys-maya-calendar .maya-wheel__rotor {
	--maya-drag-turn: 0deg;
	--maya-responsive-turn: 0deg;
	transform-box: view-box;
	transform-origin: 300px 300px;
	transition: transform 220ms cubic-bezier(.2,.82,.2,1);
	cursor: grab;
	outline: none;
}

.sunnys-maya-calendar .maya-wheel__rotor:active,
.sunnys-maya-calendar .maya-wheel__rotor.is-dragging {
	cursor: grabbing;
	transition: none;
	will-change: transform;
}

.sunnys-maya-calendar.is-dragging .maya-wheel__rotor,
.sunnys-maya-calendar.is-dragging .maya-wheel__item :is(.maya-wheel__glyph, .maya-wheel__label, .maya-wheel__meaning, .maya-wheel__number-glyph) {
	transition: none;
}

.sunnys-maya-calendar.is-dragging .maya-wheel__item :is(.maya-wheel__glyph, .maya-wheel__number-glyph) {
	filter: none;
}

.sunnys-maya-calendar .maya-wheel__rotor:focus-visible .maya-wheel__focus-ring {
	stroke: var(--maya-gold-bright);
	stroke-width: 6;
	opacity: 1;
}

.sunnys-maya-calendar .maya-wheel__focus-ring {
	fill: none;
	stroke: transparent;
	opacity: 0;
	pointer-events: none;
}

.sunnys-maya-calendar .maya-wheel__hit {
	fill: none;
	stroke: transparent;
	pointer-events: stroke;
}

.sunnys-maya-calendar .sunnys-maya-calendar__dial,
.sunnys-maya-calendar .sunnys-maya-calendar__dial * {
	pointer-events: none;
}

.sunnys-maya-calendar .maya-wheel__divider {
	stroke: rgba(1, 10, 8, .52);
	stroke-width: 2;
	vector-effect: non-scaling-stroke;
}

.sunnys-maya-calendar .maya-wheel__divider-highlight {
	stroke: rgba(255, 229, 166, .13);
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.sunnys-maya-calendar .maya-wheel__active-sector {
	fill: rgba(255, 215, 116, .2);
	stroke: var(--maya-active-line);
	stroke-width: 1.8;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
	filter: drop-shadow(0 0 7px rgba(255, 200, 77, .42));
	opacity: .92;
	pointer-events: none;
}

.sunnys-maya-calendar .maya-wheel__active-sector--inner {
	fill: rgba(255, 203, 92, .23);
	stroke: rgba(255, 232, 167, .9);
}

/* Passive year-name annotations; the existing dial hit areas stay in charge. */
.sunnys-maya-calendar .maya-wheel__year-markers,
.sunnys-maya-calendar .maya-wheel__year-markers * {
	pointer-events: none;
}

.sunnys-maya-calendar .maya-wheel__year-sector {
	fill: rgba(255, 215, 116, .2);
	stroke: var(--maya-active-line);
	stroke-width: 1.8;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
	opacity: 0;
}

.sunnys-maya-calendar .maya-wheel__year-coefficient,
.sunnys-maya-calendar .maya-wheel__year-label {
	opacity: .54;
}

.sunnys-maya-calendar .maya-wheel__year-markers circle {
	fill: var(--maya-night);
	stroke: var(--maya-ink-muted);
	stroke-width: 1.5;
}

.sunnys-maya-calendar .maya-wheel__year-markers text {
	fill: var(--maya-ink);
	font-family: "Noto Serif SC", "Microsoft YaHei", serif;
	font-size: 12.5px;
	font-weight: 700;
	text-anchor: middle;
}

.sunnys-maya-calendar .maya-wheel__year-markers.is-current-year-bearer .maya-wheel__year-sector {
	opacity: .92;
}

.sunnys-maya-calendar .maya-wheel__year-markers.is-current-year-bearer :is(.maya-wheel__year-coefficient, .maya-wheel__year-label) {
	opacity: 1;
}

.sunnys-maya-calendar .maya-wheel__year-markers.is-current-year-bearer circle {
	fill: var(--maya-gold-bright);
	stroke: var(--maya-jade);
	stroke-width: 2.5;
}

.sunnys-maya-calendar .maya-wheel__year-markers.is-current-year-bearer text {
	fill: var(--maya-night-deep);
}

.sunnys-maya-calendar .maya-wheel__item :is(.maya-wheel__glyph, .maya-wheel__label, .maya-wheel__meaning, .maya-wheel__number-glyph) {
	transition: color 180ms ease, fill 180ms ease, stroke 180ms ease, filter 180ms ease, opacity 180ms ease;
}

.sunnys-maya-calendar .maya-wheel__item.is-active .maya-wheel__glyph {
	color: #fff7cf;
	opacity: 1;
	filter: drop-shadow(0 0 5px rgba(255, 225, 146, .8)) drop-shadow(0 1px 1px rgba(0, 8, 6, .8));
}

.sunnys-maya-calendar .maya-wheel__item.is-active .maya-wheel__label {
	fill: #fff8de;
	stroke: rgba(76, 49, 9, .72);
}

.sunnys-maya-calendar .maya-wheel__item.is-active .maya-wheel__meaning {
	fill: #ffe9ae;
}

.sunnys-maya-calendar .maya-wheel__item.is-active .maya-wheel__number-glyph {
	color: #fff8d5;
	filter: drop-shadow(0 0 4px rgba(255, 224, 139, .78));
}

.sunnys-maya-calendar .maya-wheel__glyph {
	color: #f5dda0;
	overflow: visible;
	opacity: .92;
	filter: drop-shadow(0 1px 1px rgba(0, 8, 6, .86));
	pointer-events: none;
}

.sunnys-maya-calendar .maya-wheel__glyph--day {
	color: #ffe9af;
}

.sunnys-maya-calendar .maya-wheel__glyph--month {
	color: #ffe6a4;
	opacity: .98;
}

.sunnys-maya-calendar .maya-wheel__label {
	fill: #fff0c8;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .015em;
	paint-order: stroke;
	stroke: rgba(0, 16, 12, .42);
	stroke-width: 2px;
	text-anchor: middle;
}

.sunnys-maya-calendar .maya-wheel__label--small {
	font-size: 13px;
}

.sunnys-maya-calendar .maya-wheel__item--month .maya-wheel__label {
	font-size: 12px;
	stroke-width: 1.6px;
}

.sunnys-maya-calendar .maya-wheel__item--month .maya-wheel__label--small {
	font-size: 10px;
}

.sunnys-maya-calendar .maya-wheel__item--month .maya-wheel__meaning {
	font-size: 8px;
}

.sunnys-maya-calendar .maya-wheel__meaning {
	fill: rgba(247, 229, 184, .7);
	font-family: "Noto Sans SC", "Microsoft YaHei", sans-serif;
	font-size: 10px;
	font-weight: 500;
	text-anchor: middle;
}

.sunnys-maya-calendar .maya-wheel__month-index {
	fill: var(--maya-gold-bright);
	font-family: Georgia, serif;
	font-size: 10px;
	font-weight: 700;
	text-anchor: middle;
}

.sunnys-maya-calendar .maya-wheel__number-glyph {
	color: #fff0c8;
	overflow: visible;
	filter: drop-shadow(0 1px 1px rgba(0, 8, 6, .78));
	pointer-events: none;
}

.sunnys-maya-calendar__console {
	position: static;
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	align-items: stretch;
	overflow: hidden;
	background:
		linear-gradient(145deg, rgba(255,255,255,.045), transparent 34%),
		var(--maya-panel);
	border: 1px solid var(--maya-line);
	border-radius: 22px;
	box-shadow:
		0 24px 56px rgba(0, 0, 0, .28),
		inset 0 1px rgba(255, 242, 205, .08);
	backdrop-filter: blur(18px);
}

.sunnys-maya-calendar.is-atmosphere-running .sunnys-maya-calendar__console {
	background:
		linear-gradient(145deg, rgba(255,255,255,.04), transparent 34%),
		rgba(8, 28, 22, .96);
	backdrop-filter: none;
}

.sunnys-maya-calendar__console-column {
	display: contents;
}

.sunnys-maya-calendar__section-heading {
	display: flex;
	grid-column: 1 / -1;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 16px clamp(20px, 2.4vw, 30px);
	background: linear-gradient(90deg, rgba(216, 179, 94, .075), rgba(216, 179, 94, .012) 72%);
	border-bottom: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__section-heading--calendar {
	grid-row: 1;
}

.sunnys-maya-calendar__section-heading--name {
	grid-row: 3;
	border-top: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__section-heading p {
	margin: 0;
	color: var(--maya-gold);
	font-family: Georgia, serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
}

.sunnys-maya-calendar__section-heading p span {
	margin-right: 7px;
	color: var(--maya-gold-bright);
	font-variant-numeric: tabular-nums;
}

.sunnys-maya-calendar__section-heading h3 {
	margin: 4px 0 0;
	color: var(--maya-ink);
	font-family: Georgia, "Noto Serif SC", serif;
	font-size: clamp(20px, 2.2vw, 25px);
	line-height: 1.25;
}

.sunnys-maya-calendar__name-title-note {
	display: inline-block;
	margin-inline-start: .65em;
	color: var(--maya-ink-muted);
	font-family: "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
	font-size: clamp(9px, 1vw, 11px);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.25;
	vertical-align: .12em;
	white-space: nowrap;
}

.sunnys-maya-calendar__date-form {
	grid-row: 2;
	grid-column: 1;
	padding: clamp(20px, 2.4vw, 30px);
	border-right: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__console-heading span,
.sunnys-maya-calendar__result-kicker {
	color: var(--maya-gold);
	font-family: Georgia, serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .2em;
}

.sunnys-maya-calendar__console-heading h3 {
	margin: 5px 0 19px;
	color: var(--maya-ink);
	font-family: "Noto Serif SC", "Songti SC", Georgia, serif;
	font-size: 21px;
	font-weight: 650;
	line-height: 1.35;
}

.sunnys-maya-calendar__date-grid {
	display: grid;
	grid-template-columns: 1.15fr 1.25fr .8fr .8fr;
	gap: 9px;
}

.sunnys-maya-calendar__date-grid label {
	display: grid;
	gap: 7px;
	min-width: 0;
}

.sunnys-maya-calendar__date-grid label > span {
	color: var(--maya-ink-muted);
	font-size: 12px;
	font-weight: 600;
}

.sunnys-maya-calendar__date-grid :is(input, select),
.sunnys-maya-calendar__name-form input {
	width: 100%;
	min-width: 0;
	height: 46px;
	margin: 0;
	padding: 0 10px;
	color: #fff6dd;
	font: inherit;
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	background: rgba(2, 13, 10, .68);
	border: 1px solid rgba(220, 185, 104, .32);
	border-radius: 9px;
	outline: none;
	box-shadow: inset 0 2px 8px rgba(0, 0, 0, .22);
	transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.sunnys-maya-calendar__date-grid select {
	padding-right: 26px;
}

.sunnys-maya-calendar__date-grid :is(input, select):hover,
.sunnys-maya-calendar__name-form input:hover {
	border-color: rgba(244, 209, 126, .55);
}

.sunnys-maya-calendar__date-grid :is(input, select):focus-visible,
.sunnys-maya-calendar__name-form input:focus-visible {
	background: rgba(4, 22, 17, .9);
	border-color: var(--maya-gold-bright);
	box-shadow: 0 0 0 3px rgba(235, 192, 93, .18);
}

/* Keep one clean component focus treatment instead of Astra's dotted input frame. */
.sunnys-maya-calendar .sunnys-maya-calendar__date-grid input:focus,
.sunnys-maya-calendar .sunnys-maya-calendar__date-grid input:focus-visible,
.sunnys-maya-calendar .sunnys-maya-calendar__name-form input:focus,
.sunnys-maya-calendar .sunnys-maya-calendar__name-form input:focus-visible {
	border-width: 1px;
	border-style: solid;
	border-color: var(--maya-gold-bright);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(235, 192, 93, .18);
}

.sunnys-maya-calendar__date-grid :is(input, select)[aria-invalid="true"],
.sunnys-maya-calendar__name-form input[aria-invalid="true"] {
	border-color: #ff9375;
	box-shadow: 0 0 0 3px rgba(189, 91, 60, .2);
}

.sunnys-maya-calendar__form-error {
	min-height: 21px;
	margin: 9px 0 0;
	color: #ffb29c;
	font-size: 12px;
	line-height: 1.55;
}

.sunnys-maya-calendar__form-actions {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px;
	align-items: center;
}

.sunnys-maya-calendar :is(.sunnys-maya-calendar__primary-action, .sunnys-maya-calendar__quiet-action, .sunnys-maya-calendar__day-stepper button) {
	min-height: 44px;
	font: inherit;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.sunnys-maya-calendar__primary-action {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	padding: 0 16px;
	color: #152216;
	font-size: 14px;
	font-weight: 800;
	background: linear-gradient(135deg, #f5d98f, #c79a3f);
	border: 1px solid #ffe6a9;
	border-radius: 9px;
	box-shadow: 0 8px 20px rgba(193, 137, 37, .2), inset 0 1px rgba(255,255,255,.4);
	transition: transform 180ms ease, filter 180ms ease, box-shadow 180ms ease;
}

.sunnys-maya-calendar__primary-action svg,
.sunnys-maya-calendar__day-stepper svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.sunnys-maya-calendar__primary-action:hover {
	filter: brightness(1.08);
	transform: translateY(-1px);
	box-shadow: 0 11px 26px rgba(193, 137, 37, .27), inset 0 1px rgba(255,255,255,.45);
}

.sunnys-maya-calendar__primary-action:active {
	transform: translateY(1px) scale(.985);
}

.sunnys-maya-calendar__quiet-action {
	padding: 0 12px;
	color: var(--maya-ink-muted);
	font-size: 12px;
	font-weight: 650;
	background: transparent;
	border: 1px solid rgba(224, 189, 108, .26);
	border-radius: 9px;
	transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.sunnys-maya-calendar__quiet-action:hover {
	color: var(--maya-gold-bright);
	background: rgba(219, 179, 86, .07);
	border-color: rgba(244, 211, 133, .55);
}

.sunnys-maya-calendar__name-studio {
	display: flex;
	grid-row: 4;
	grid-column: 1;
	flex: 1;
	flex-direction: column;
	padding: clamp(18px, 2vw, 24px);
	border-right: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__name-result-panel {
	display: flex;
	grid-row: 4;
	grid-column: 2;
	flex: 1;
	flex-direction: column;
	min-width: 0;
	padding: clamp(18px, 2vw, 24px);
}

.sunnys-maya-calendar__ritual-shell {
	position: relative;
	isolation: isolate;
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}

.sunnys-maya-calendar__ritual-aura {
	position: absolute;
	top: 48%;
	left: 50%;
	z-index: -1;
	width: min(340px, 78%);
	aspect-ratio: 1;
	pointer-events: none;
	opacity: .055;
	transform: translate(-50%, -50%);
}

.sunnys-maya-calendar__ritual-aura::before {
	position: absolute;
	inset: 14%;
	content: "";
	background: radial-gradient(circle, rgba(247, 213, 125, .2), rgba(31, 110, 79, .06) 48%, transparent 72%);
	filter: blur(18px);
}

.sunnys-maya-calendar__ritual-aura svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: #efd27d;
	stroke-width: 1;
	stroke-linecap: round;
}

.sunnys-maya-calendar__ritual-aura path:last-child {
	fill: rgba(239, 210, 125, .1);
	stroke-width: 1.6;
}

.sunnys-maya-calendar__ritual-shell.is-muted .sunnys-maya-calendar__sound-wave {
	display: none;
}

.sunnys-maya-calendar__name-completion {
	position: relative;
	z-index: 2;
	min-width: 0;
	margin: 0;
	color: #c7b485;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .035em;
	line-height: 1.55;
}

.sunnys-maya-calendar__name-completion::before {
	display: inline-block;
	width: 5px;
	height: 5px;
	margin: 0 7px 1px 1px;
	content: "";
	background: #e9c66b;
	border-radius: 50%;
	box-shadow: 0 0 8px rgba(239, 205, 113, .52);
}

.sunnys-maya-calendar :is(.sunnys-maya-calendar__name-studio, .sunnys-maya-calendar__name-result-panel) .sunnys-maya-calendar__console-heading h3 {
	margin: 3px 0 11px;
	font-size: 19px;
}

.sunnys-maya-calendar__name-intro {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.sunnys-maya-calendar__name-form {
	display: grid;
	grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
	gap: 8px;
}

.sunnys-maya-calendar__name-form label {
	display: grid;
	gap: 7px;
	min-width: 0;
}

.sunnys-maya-calendar__name-form label > span {
	color: var(--maya-ink-muted);
	font-size: 12px;
	font-weight: 600;
}

.sunnys-maya-calendar__name-help {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.sunnys-maya-calendar__name-form > .sunnys-maya-calendar__form-error {
	grid-column: 1 / -1;
	min-height: 0;
	margin: 0;
}

.sunnys-maya-calendar__name-form > .sunnys-maya-calendar__form-error:empty {
	display: none;
}

.sunnys-maya-calendar__name-actions {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: 1fr auto;
	gap: 10px;
}

.sunnys-maya-calendar__name-output {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(112px, .8fr);
	gap: 7px 13px;
	min-width: 0;
	margin-top: 14px;
	padding-top: 12px;
}

.sunnys-maya-calendar__name-guidance {
	grid-column: 1 / -1;
}

.sunnys-maya-calendar .sunnys-maya-calendar__name-program-statement {
	margin: 0 0 10px;
	color: #c8bc9f;
	font-size: 12px;
	line-height: 1.55;
	letter-spacing: normal;
	word-spacing: normal;
	text-align: left;
	text-align-last: auto;
	text-wrap: wrap;
}

.sunnys-maya-calendar__name-program-statement strong {
	color: #ead18b;
	font-weight: 700;
}

.sunnys-maya-calendar__name-studio > .sunnys-maya-calendar__name-guidance {
	margin-top: auto;
	padding-top: 18px;
}

.sunnys-maya-calendar__name-blocks {
	--maya-name-glyph-height: clamp(54px, 5.4vw, 70px);
	--maya-name-column-size: var(--maya-name-glyph-height);
	--maya-name-caption-width: clamp(54px, 5.8vw, 76px);
	--maya-name-caption-gap: clamp(4px, .45vw, 6px);
	--maya-name-visible-block-gap: clamp(4px, .45vw, 7px);
	--maya-name-visible-row-gap: var(--maya-name-visible-block-gap);
	--maya-name-composite-gap: clamp(2px, .25vw, 4px);
	display: grid;
	grid-template-columns: repeat(2, var(--maya-name-column-size));
	grid-auto-flow: row;
	grid-auto-rows: var(--maya-name-glyph-height);
	grid-column: 1;
	grid-row: 2 / span 3;
	justify-content: center;
	align-content: start;
	align-items: center;
	column-gap: var(--maya-name-visible-block-gap);
	row-gap: var(--maya-name-visible-row-gap);
	box-sizing: border-box;
	max-width: 100%;
	padding-inline: calc(var(--maya-name-caption-width) + var(--maya-name-caption-gap));
}

.sunnys-maya-calendar__name-result-panel .sunnys-maya-calendar__name-blocks {
	grid-row: 1 / span 3;
}

.sunnys-maya-calendar__name-block {
	position: relative;
	display: grid;
	place-items: center;
	width: var(--maya-name-column-size);
	height: var(--maya-name-glyph-height);
	max-width: 100%;
	min-width: 0;
	margin: 0;
}

.sunnys-maya-calendar__name-block[data-maya-reading-span="2"] {
	width: auto;
	justify-self: stretch;
}

.sunnys-maya-calendar__name-block--calendar {
	margin-inline-end: 0;
}

.sunnys-maya-calendar__name-block--royal-title {
	flex: none;
	padding: 0;
}

.sunnys-maya-calendar__royal-title-glyphs {
	display: grid;
	grid-template-columns: clamp(54px, 5.4vw, 70px);
	align-items: center;
	justify-content: center;
	gap: 0;
	height: clamp(54px, 5.4vw, 70px);
	color: #f7dda0;
	filter: drop-shadow(0 0 6px rgba(255, 215, 120, .22));
}

.sunnys-maya-calendar__royal-title-sign {
	display: block;
	width: clamp(54px, 5.4vw, 70px);
	height: clamp(54px, 5.4vw, 70px);
	overflow: visible;
	color: inherit;
	transform: none;
	transform-origin: center;
}

.sunnys-maya-calendar__name-block--royal-title figcaption {
	line-height: normal;
}

.sunnys-maya-calendar__name-block--royal-title figcaption strong {
	color: #f2d684;
	font-family: Georgia, serif;
	font-size: 13px;
	letter-spacing: .045em;
}

.sunnys-maya-calendar__name-block--calendar figcaption strong {
	font-family: Georgia, "Noto Serif SC", serif;
}

.sunnys-maya-calendar__name-calendar-glyphs {
	display: grid;
	grid-template-columns: clamp(18px, 1.8vw, 24px) clamp(54px, 5.4vw, 70px);
	gap: 0;
	align-items: center;
	height: clamp(54px, 5.4vw, 70px);
	color: #f8dfa0;
	filter: drop-shadow(0 0 5px rgba(255, 216, 126, .18));
}

.sunnys-maya-calendar__name-calendar-glyphs > svg {
	display: block;
	overflow: visible;
	color: inherit;
}

.sunnys-maya-calendar__name-calendar-number {
	justify-self: end;
	width: clamp(45.5px, 4.55vw, 59px);
	height: clamp(45.5px, 4.55vw, 59px);
}

.sunnys-maya-calendar__name-calendar-day {
	width: clamp(54px, 5.4vw, 70px);
	height: clamp(54px, 5.4vw, 70px);
	margin-inline-start: var(--maya-name-calendar-day-shift, 0px);
}

.sunnys-maya-calendar__name-block-glyphs {
	display: grid;
	grid-template-columns: repeat(var(--maya-name-block-count, 1), max-content);
	align-items: center;
	justify-content: center;
	gap: var(--maya-name-composite-gap, clamp(2px, .25vw, 4px));
	width: 100%;
	height: var(--maya-name-glyph-height);
}

.sunnys-maya-calendar__name-glyph-slot {
	display: grid;
	place-items: center;
	width: var(--maya-name-column-size);
	height: var(--maya-name-glyph-height);
	min-width: 0;
}

.sunnys-maya-calendar__name-glyph-stage {
	display: grid;
	place-items: center;
	justify-self: center;
	align-self: center;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	min-width: 0;
	transform: translate3d(var(--maya-name-ink-shift-x, 0px), var(--maya-name-ink-shift-y, 0px), 0) scale(var(--maya-name-ink-scale-x, 1), var(--maya-name-ink-scale-y, 1));
	-webkit-transform: translate3d(var(--maya-name-ink-shift-x, 0px), var(--maya-name-ink-shift-y, 0px), 0) scale(var(--maya-name-ink-scale-x, 1), var(--maya-name-ink-scale-y, 1));
	transform-origin: center center;
	-webkit-transform-origin: center center;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.sunnys-maya-calendar__name-block.is-split .sunnys-maya-calendar__name-block-glyphs {
	grid-template-columns: repeat(2, var(--maya-name-column-size));
	justify-content: stretch;
	column-gap: var(--maya-name-visible-block-gap);
	row-gap: 0;
}

.sunnys-maya-calendar__name-glyph-stage > svg {
	display: block;
	justify-self: center;
	width: var(--maya-name-block-width, clamp(54px, 5.4vw, 70px));
	height: var(--maya-name-glyph-height);
	overflow: visible;
	color: #f6dd9f;
	filter: drop-shadow(0 0 5px rgba(255, 216, 126, .16));
}

.sunnys-maya-calendar__name-block.is-unsupported .sunnys-maya-calendar__name-block-glyphs > svg {
	color: #c9ad6b;
}

.sunnys-maya-calendar__name-block.is-unsupported text {
	fill: currentColor;
	font-family: Georgia, serif;
	font-size: 12px;
}

.sunnys-maya-calendar__name-block figcaption {
	position: absolute;
	top: 50%;
	display: flex;
	align-items: baseline;
	gap: 4px;
	width: var(--maya-name-caption-width);
	min-width: 0;
	margin: 0;
	transform: translateY(-50%);
	pointer-events: none;
}

.sunnys-maya-calendar__name-block[data-maya-reading-column="A"] > figcaption {
	right: calc(100% + var(--maya-name-caption-gap));
	justify-content: flex-end;
	text-align: right;
}

.sunnys-maya-calendar__name-block[data-maya-reading-column="B"] > figcaption {
	left: calc(100% + var(--maya-name-caption-gap));
	justify-content: flex-start;
	text-align: left;
}

.sunnys-maya-calendar__name-caption--split {
	inset: 0;
	top: 0 !important;
	display: block !important;
	width: 100% !important;
	transform: none !important;
}

.sunnys-maya-calendar__name-caption-part {
	position: absolute;
	top: 50%;
	display: flex;
	align-items: baseline;
	gap: 4px;
	width: var(--maya-name-caption-width);
	transform: translateY(-50%);
}

.sunnys-maya-calendar__name-caption-part--left {
	right: calc(100% + var(--maya-name-caption-gap));
	justify-content: flex-end;
	text-align: right;
}

.sunnys-maya-calendar__name-caption-part--right {
	left: calc(100% + var(--maya-name-caption-gap));
	justify-content: flex-start;
	text-align: left;
}

.sunnys-maya-calendar__name-caption-character {
	color: var(--maya-ink);
	font-family: "Noto Serif SC", "Songti SC", serif;
	font-size: 13px;
}

.sunnys-maya-calendar__name-caption-reading {
	overflow: hidden;
	color: #b8aa88;
	font-family: Georgia, serif;
	font-size: 10px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sunnys-maya-calendar__name-sign {
	color: inherit;
	filter: drop-shadow(0 0 3px rgba(255, 218, 130, .18));
}

.sunnys-maya-calendar__name-output h4 {
	grid-column: 2;
	margin: 1px 0 0;
	color: var(--maya-gold-bright);
	font-family: Georgia, "Noto Serif SC", serif;
	font-size: clamp(18px, 1.8vw, 23px);
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.sunnys-maya-calendar__name-output h4 [data-maya-name-royal-title] {
	white-space: nowrap;
}

.sunnys-maya-calendar__name-output:is(.has-split-block, .has-calendar-prefix) {
	grid-template-columns: minmax(0, 1fr);
}

.sunnys-maya-calendar__name-output:is(.has-split-block, .has-calendar-prefix) .sunnys-maya-calendar__name-blocks {
	grid-column: 1;
	grid-row: auto;
}

.sunnys-maya-calendar__name-output:is(.has-split-block, .has-calendar-prefix) :is(h4, .sunnys-maya-calendar__name-hanzi, .sunnys-maya-calendar__name-evidence) {
	grid-column: 1;
}

.sunnys-maya-calendar__name-output:is(.has-split-block, .has-calendar-prefix) h4 {
	margin-top: 8px;
}

.sunnys-maya-calendar__name-hanzi {
	display: flex;
	grid-column: 2;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 3px 7px;
	margin: -2px 0 0;
}

.sunnys-maya-calendar__name-hanzi span {
	color: #9f9274;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .08em;
}

.sunnys-maya-calendar__name-hanzi strong {
	color: #e8d29a;
	font-family: "Noto Serif SC", serif;
	font-size: clamp(18px, 1.8vw, 23px);
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.35;
}

.sunnys-maya-calendar__name-evidence {
	grid-column: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 3px;
}

.sunnys-maya-calendar__name-evidence span {
	padding: 4px 8px;
	color: #d8c9a5;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .04em;
	background: rgba(220, 183, 93, .07);
	border: 1px solid rgba(220, 183, 93, .2);
	border-radius: 999px;
}

.sunnys-maya-calendar__name-studio > .sunnys-maya-calendar__name-guidance .sunnys-maya-calendar__name-evidence {
	margin-top: 0;
}

.sunnys-maya-calendar__name-disclaimer {
	grid-column: 1 / -1;
	margin: 3px 0 0;
	color: #afa386;
	font-size: 10px;
	line-height: 1.6;
}

.sunnys-maya-calendar__name-credit {
	margin: 8px 0 0;
	padding-top: 11px;
	color: #91866e;
	font-size: 9px;
	line-height: 1.55;
}

.sunnys-maya-calendar__name-credit a {
	color: #cbb374;
	text-decoration-color: rgba(203, 179, 116, .42);
	text-underline-offset: 2px;
}

[data-maya-ritual-unit] {
	transform-origin: center;
}

.sunnys-maya-calendar__ritual-shell[data-ritual-state="queued"] [data-maya-ritual-unit],
.sunnys-maya-calendar__ritual-shell[data-ritual-state="queued"] .sunnys-maya-calendar__name-block figcaption,
.sunnys-maya-calendar__ritual-shell[data-ritual-state="queued"] .sunnys-maya-calendar__name-output h4,
.sunnys-maya-calendar__ritual-shell[data-ritual-state="queued"] .sunnys-maya-calendar__name-hanzi {
	opacity: 0;
}

.sunnys-maya-calendar__ritual-shell[data-ritual-state="title"] .sunnys-maya-calendar__name-block--royal-title {
	filter: drop-shadow(0 0 10px rgba(239, 204, 111, .22));
}

.sunnys-maya-calendar :is(button, input, select):focus-visible {
	outline: 2px solid var(--maya-gold-bright);
	outline-offset: 3px;
}

.sunnys-maya-calendar__day-stepper {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: stretch;
	overflow: hidden;
	margin: 0 0 14px;
	background: rgba(216, 179, 94, .025);
	border: 1px solid var(--maya-line);
	border-radius: 8px;
}

.sunnys-maya-calendar__day-stepper > div {
	display: grid;
	place-content: center;
	min-width: 0;
	padding: 0;
	text-align: center;
}

.sunnys-maya-calendar__day-stepper small {
	color: var(--maya-ink-muted);
	font-size: 10px;
	letter-spacing: .08em;
}

.sunnys-maya-calendar__day-stepper strong {
	margin-top: 3px;
	color: var(--maya-ink);
	font-family: Georgia, "Noto Serif SC", serif;
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	line-height: 1.25;
}

.sunnys-maya-calendar__day-current {
	grid-template-rows: repeat(2, minmax(0, 1fr));
	place-content: stretch;
}

.sunnys-maya-calendar__day-stepper .sunnys-maya-calendar__day-current > strong {
	display: grid;
	place-items: center;
	margin: 0;
	padding: 8px 12px;
	font-size: 13px;
	line-height: 1.2;
}

.sunnys-maya-calendar__day-current-long-count {
	letter-spacing: .035em;
}

.sunnys-maya-calendar__day-stepper .sunnys-maya-calendar__day-current-gregorian {
	width: 100%;
	color: var(--maya-ink-muted);
	font-weight: 600;
	border-top: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__day-stepper button {
	display: inline-flex;
	gap: 4px;
	align-items: center;
	justify-content: center;
	min-width: 78px;
	padding: 8px;
	color: var(--maya-gold-bright);
	font-size: 11px;
	font-weight: 700;
	background: rgba(216, 179, 94, .045);
	border: 0;
	border-radius: 0;
	transition: background-color 180ms ease;
}

.sunnys-maya-calendar__day-stepper button:first-child {
	border-right: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__day-stepper button:last-child {
	border-left: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__day-stepper button:hover {
	background: rgba(216, 179, 94, .12);
}

.sunnys-maya-calendar__result {
	position: relative;
	display: flex;
	grid-row: 2;
	grid-column: 2;
	flex: 0 0 auto;
	flex-direction: column;
	padding: clamp(21px, 2.4vw, 30px);
}

.sunnys-maya-calendar__seal {
	position: absolute;
	top: 22px;
	right: 24px;
	width: 50px;
	height: 50px;
	color: rgba(231, 193, 105, .18);
}

.sunnys-maya-calendar__seal svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.4;
}

.sunnys-maya-calendar__result-kicker {
	margin: 0 0 6px;
}

.sunnys-maya-calendar__result h3 {
	max-width: calc(100% - 52px);
	margin: 0;
	color: var(--maya-gold-bright);
	font-family: Georgia, "Noto Serif SC", serif;
	font-size: clamp(24px, 2.5vw, 34px);
	font-weight: 600;
	line-height: 1.2;
	text-wrap: balance;
}

.sunnys-maya-calendar__result-glyphs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 10px 0 8px;
	padding: 8px 0;
	border-top: 1px solid rgba(232, 197, 112, .18);
	border-bottom: 1px solid rgba(232, 197, 112, .18);
}

.sunnys-maya-calendar__result-glyph-mark {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	align-items: center;
	gap: 7px;
	min-width: 0;
	padding: 0 10px 0 0;
}

.sunnys-maya-calendar__result-glyph-mark--month {
	padding: 0 0 0 10px;
	border-left: 1px solid rgba(232, 197, 112, .18);
}

.sunnys-maya-calendar__result-symbols {
	display: grid;
	grid-template-columns: clamp(35.2px, 3.596vw, 43.2px) minmax(0, 1fr);
	align-items: center;
	gap: 0;
	min-width: 0;
}

.sunnys-maya-calendar__result-glyph {
	display: block;
	width: clamp(42px, 4.25vw, 52px);
	height: clamp(42px, 4.25vw, 52px);
	margin-inline-start: var(--maya-result-glyph-shift, 0px);
	color: var(--maya-gold-bright);
	filter: drop-shadow(0 0 8px rgba(255, 210, 103, .22));
}

.sunnys-maya-calendar__result-number {
	display: block;
	width: clamp(35.2px, 3.596vw, 43.2px);
	height: clamp(35.2px, 3.596vw, 43.2px);
	color: var(--maya-gold-bright);
	overflow: visible;
	filter: drop-shadow(0 0 6px rgba(255, 210, 103, .3));
}

.sunnys-maya-calendar__result-number--zero {
	transform: rotate(-90deg);
	transform-origin: center;
}

.sunnys-maya-calendar__result-glyph-mark span {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 3px;
}

.sunnys-maya-calendar__result-glyph-mark small {
	color: var(--maya-ink-muted);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.25;
}

.sunnys-maya-calendar__result-glyph-mark strong {
	min-width: 0;
	overflow-wrap: anywhere;
	color: var(--maya-ink);
	font-family: Georgia, "Noto Serif SC", serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

.sunnys-maya-calendar__result > p:not(.sunnys-maya-calendar__result-kicker) {
	margin: 8px 0 21px;
	color: var(--maya-ink-muted);
	font-size: 13px;
	line-height: 1.6;
}

.sunnys-maya-calendar__result [data-maya-primary-meaning] {
	white-space: pre-line;
}

.sunnys-maya-calendar__result-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
}

.sunnys-maya-calendar__result-grid > div {
	min-width: 0;
	padding: 11px 12px;
	background: rgba(1, 12, 9, .46);
	border: 1px solid rgba(218, 180, 91, .16);
	border-radius: 9px;
}

.sunnys-maya-calendar__result-grid > div:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.sunnys-maya-calendar__result-grid dt {
	margin: 0 0 4px;
	color: #ad9f81;
	font-size: 10px;
	letter-spacing: .08em;
}

.sunnys-maya-calendar__result-grid dd {
	margin: 0;
	overflow-wrap: anywhere;
	color: #fff0cc;
	font-family: Georgia, "Noto Sans SC", sans-serif;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	line-height: 1.4;
}

.sunnys-maya-calendar__console-footer {
	display: grid;
	grid-row: 5;
	grid-column: 1 / -1;
	grid-template-columns: minmax(190px, .58fr) minmax(0, 1.42fr);
	gap: 18px;
	align-items: center;
	padding: 14px clamp(18px, 2vw, 24px);
	border-top: 1px solid var(--maya-line);
}

.sunnys-maya-calendar__console-notes {
	min-width: 0;
}

.sunnys-maya-calendar__console-footer .sunnys-maya-calendar__method {
	margin: 0;
	color: #c9b990;
	font-size: 12px;
	line-height: 1.6;
}

.sunnys-maya-calendar.is-pulsing .sunnys-maya-calendar__dial-core::after {
	animation: maya-calendar-core-pulse 300ms ease-out;
}

.sunnys-maya-calendar.is-pulsing .maya-wheel__active-sector {
	animation: maya-calendar-sector-pulse 300ms ease-out;
}

.sunnys-maya-calendar.is-pulsing .sunnys-maya-calendar__assemblies::after {
	animation: maya-calendar-mesh-pulse 300ms ease-out;
}

@keyframes maya-calendar-core-pulse {
	0% { opacity: 0; transform: scale(.82); }
	45% { opacity: 1; transform: scale(1.04); }
	100% { opacity: 0; transform: scale(1.14); }
}

@keyframes maya-calendar-sector-pulse {
	0% { opacity: .55; }
	58% { opacity: 1; }
	100% { opacity: .92; }
}

@keyframes maya-calendar-mesh-pulse {
	0% { opacity: .55; }
	58% { opacity: 1; }
	100% { opacity: 1; }
}

@media (max-width: 760px) {
	.sunnys-maya-calendar {
		width: 100%;
		margin: 18px auto;
		border-radius: 20px;
	}

	.sunnys-maya-calendar__shell {
		padding: 24px 14px;
	}

	.sunnys-maya-calendar__header {
		padding-inline: 7px;
	}

	.sunnys-maya-calendar__header h2 {
		font-size: clamp(34px, 11vw, 48px);
	}

	.sunnys-maya-calendar__assembly-heading {
		justify-content: center;
		width: 100%;
		padding-left: 0;
		text-align: center;
	}

	.sunnys-maya-calendar__instrument {
		container-type: inline-size;
	}

	.sunnys-maya-calendar__assemblies {
		--maya-mobile-dial-size: 100cqi;
		--maya-mobile-mesh-gap: .9734cqi;
		--maya-mobile-rim-inset: .833333cqi;
		--maya-mobile-mesh-overlap: .8cqi;
		--maya-mobile-mesh-span: 14.25cqi;
		grid-template-columns: 1fr;
		grid-template-rows: auto var(--maya-mobile-mesh-gap) auto;
		gap: 0;
	}

	.sunnys-maya-calendar__assembly:first-child {
		grid-row: 1;
	}

	.sunnys-maya-calendar__assembly:last-child {
		display: flex;
		flex-direction: column;
		grid-row: 3;
	}

	.sunnys-maya-calendar__assemblies::before {
		display: none;
	}

	.sunnys-maya-calendar__assemblies::after {
		display: block;
		position: relative;
		grid-row: 2;
		grid-column: 1;
		place-self: center;
		top: auto;
		left: auto;
		width: calc(var(--maya-mobile-mesh-gap) + var(--maya-mobile-mesh-overlap));
		height: var(--maya-mobile-mesh-span);
		transform: rotate(90deg);
	}

	.sunnys-maya-calendar .maya-wheel__rotor {
		--maya-responsive-turn: 90deg;
	}

	.sunnys-maya-calendar .maya-wheel__active-sector {
		transform-box: view-box;
		transform-origin: 300px 300px;
		transform: rotate(90deg);
	}

	.sunnys-maya-calendar__assembly:last-child .sunnys-maya-calendar__assembly-heading {
		position: static;
		order: 2;
		width: 100%;
		margin: 21px 0 0;
	}

	.sunnys-maya-calendar__dial-wrap {
		width: 100%;
		max-width: 560px;
		margin-inline: auto;
		filter: none;
		border-radius: 50%;
		box-shadow: 0 20px 22px rgba(0, 0, 0, .3);
	}

	.sunnys-maya-calendar__assembly:last-child .sunnys-maya-calendar__dial-wrap {
		margin-inline: auto;
	}

	.sunnys-maya-calendar__assembly:first-child .sunnys-maya-calendar__dial-wrap {
		top: var(--maya-mobile-rim-inset);
		transform: none;
	}

	.sunnys-maya-calendar__assembly:last-child .sunnys-maya-calendar__dial-wrap {
		top: calc(-1 * var(--maya-mobile-rim-inset));
		transform: none;
	}

	/* Keep each progress origin on the vertical mesh point when the dials stack. */
	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-layer {
		transform-box: view-box;
		transform-origin: 300px 300px;
		transform: rotate(90deg);
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-trail--desktop {
		display: none;
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-trail--mobile {
		display: block;
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-trail--mobile-glow {
		stroke-width: 10;
		opacity: .28;
		filter: drop-shadow(0 0 5px var(--maya-progress-flow-color)) drop-shadow(0 0 9px var(--maya-progress-glow));
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-trail--mobile-core {
		stroke-width: 5.75;
		opacity: 1;
		filter: drop-shadow(0 0 3px var(--maya-progress-flow-color)) drop-shadow(0 0 6px var(--maya-progress-glow));
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-head-halo {
		r: 10px;
		opacity: .52;
		filter: drop-shadow(0 0 6px var(--maya-progress-glow));
	}

	.sunnys-maya-calendar:not(.sunnys-mexica-calendar) .maya-wheel__progress-flow-head-core {
		r: 4.5px;
		stroke-width: 1.1;
		filter: drop-shadow(0 0 4px var(--maya-progress-flow-color)) drop-shadow(0 0 7px var(--maya-progress-glow));
	}

	.sunnys-maya-calendar__gesture-help {
		padding-inline: 12px;
	}

	.sunnys-maya-calendar__console {
		display: flex;
		flex-direction: column;
	}

	.sunnys-maya-calendar__section-heading--calendar { order: 1; }
	.sunnys-maya-calendar__date-form { order: 2; }
	.sunnys-maya-calendar__result { order: 3; }
	.sunnys-maya-calendar__section-heading--name { order: 4; }
	.sunnys-maya-calendar__name-studio { order: 5; }
	.sunnys-maya-calendar__name-result-panel { order: 6; }
	.sunnys-maya-calendar__console-footer { order: 7; }

	.sunnys-maya-calendar :is(.sunnys-maya-calendar__date-form, .sunnys-maya-calendar__name-studio) {
		border-right: 0;
	}

	.sunnys-maya-calendar__result {
		border-bottom: 0;
	}

	.sunnys-maya-calendar__console-footer {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.sunnys-maya-calendar__name-blocks {
		grid-column: 1 / -1;
		grid-row: auto;
		justify-content: center;
	}

	.sunnys-maya-calendar__name-output {
		display: block;
	}

	.sunnys-maya-calendar__name-result-panel,
	.sunnys-maya-calendar__ritual-shell,
	.sunnys-maya-calendar__name-output,
	.sunnys-maya-calendar__name-guidance,
	.sunnys-maya-calendar__name-program-statement {
		box-sizing: border-box;
		width: 100%;
		max-width: none;
		min-width: 0;
		align-self: stretch;
	}

	.sunnys-maya-calendar__name-program-statement {
		overflow-wrap: anywhere;
		word-spacing: normal;
		letter-spacing: normal;
		text-align: left;
		text-align-last: auto;
		-webkit-text-size-adjust: 100%;
	}

	.sunnys-maya-calendar__name-form input {
		font-size: 16px;
	}

	.sunnys-maya-calendar__section-heading--name h3 {
		font-size: clamp(17px, 5vw, 20px);
		white-space: nowrap;
	}

	.sunnys-maya-calendar__name-title-note {
		margin-inline-start: .45em;
		font-size: clamp(8.5px, 2.5vw, 10px);
	}

	.sunnys-maya-calendar__name-output h4 {
		margin-top: 14px;
	}

	.sunnys-maya-calendar__name-evidence {
		margin-top: 11px;
	}

	.sunnys-maya-calendar__date-grid {
		grid-template-columns: 1.1fr 1.3fr 1fr 1fr;
		gap: 7px;
	}

	.sunnys-maya-calendar__date-grid :is(input, select) {
		padding-inline: 7px;
		font-size: 16px;
	}

	.sunnys-maya-calendar__result-grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* iOS WebKit can retain an intrinsic half-column width through display: contents. */
@supports (-webkit-touch-callout: none) {
	@media (max-width: 760px) {
		.sunnys-maya-calendar__name-result-panel,
		.sunnys-maya-calendar__ritual-shell,
		.sunnys-maya-calendar__name-output,
		.sunnys-maya-calendar__name-guidance,
		.sunnys-maya-calendar__name-program-statement {
			box-sizing: border-box;
			inline-size: 100%;
			max-inline-size: none;
			min-inline-size: 0;
		}

		.sunnys-maya-calendar__name-result-panel,
		.sunnys-maya-calendar__ritual-shell {
			align-items: stretch;
		}

		.sunnys-maya-calendar__name-output,
		.sunnys-maya-calendar__name-guidance,
		.sunnys-maya-calendar__name-program-statement {
			display: block;
			align-self: stretch;
		}

		.sunnys-maya-calendar__name-program-statement {
			white-space: normal;
			word-break: normal;
			line-break: strict;
			overflow-wrap: normal;
			text-wrap: wrap;
			text-align: start;
			text-align-last: auto;
		}
	}
}

@media (max-width: 420px) {
	.sunnys-maya-calendar__name-blocks {
		--maya-name-caption-width: 62px;
		--maya-name-caption-gap: 6px;
		padding-inline: calc(var(--maya-name-caption-width) + var(--maya-name-caption-gap));
	}

	.sunnys-maya-calendar__name-caption-character {
		font-size: 11px;
	}

	.sunnys-maya-calendar__name-caption-reading {
		font-size: 9px;
	}

	.sunnys-maya-calendar__shell {
		padding-inline: 10px;
	}

	.sunnys-maya-calendar__date-grid {
		grid-template-columns: 1fr 1.25fr;
	}

	.sunnys-maya-calendar__form-actions {
		grid-template-columns: 1fr;
	}

	.sunnys-maya-calendar__name-form {
		grid-template-columns: 1fr;
	}

	.sunnys-maya-calendar__name-form > :is(label, .sunnys-maya-calendar__name-help, .sunnys-maya-calendar__form-error, .sunnys-maya-calendar__name-actions) {
		grid-column: 1;
	}

	.sunnys-maya-calendar__name-actions {
		grid-template-columns: 1fr;
	}

	.sunnys-maya-calendar__quiet-action {
		width: 100%;
	}

	.sunnys-maya-calendar__day-stepper button {
		min-width: 56px;
	}

	.sunnys-maya-calendar__day-stepper button span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.sunnys-maya-calendar__result-grid {
		grid-template-columns: 1fr;
	}

	.sunnys-maya-calendar__result-grid > div:last-child:nth-child(odd) {
		grid-column: auto;
	}

	.sunnys-maya-calendar__result-glyph-mark {
		gap: 7px;
	}

	.sunnys-maya-calendar__result-symbols {
		grid-template-columns: 32.2px 40px;
	}

	.sunnys-maya-calendar__result-glyph {
		width: 38px;
		height: 38px;
		margin-inline-start: var(--maya-result-glyph-shift, 0px);
	}

	.sunnys-maya-calendar__result-number {
		width: 32.2px;
		height: 32.2px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sunnys-maya-calendar *,
	.sunnys-maya-calendar *::before,
	.sunnys-maya-calendar *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* Maya year details: isolated additions; existing layout and touch rules are unchanged. */
.sunnys-maya-calendar .sunnys-maya-calendar__year-note {
	margin-top: 28px;
	color: var(--maya-ink-muted);
	font-size: 12px;
	line-height: 1.7;
}

.sunnys-maya-calendar :is(.sunnys-maya-calendar__year-note, .sunnys-maya-calendar__year-events) h4 {
	margin: 0 0 9px;
	color: var(--maya-ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-note p {
	margin: 0 0 9px;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-seal {
	margin: 0 0 12px;
	padding: 4px 0 12px;
	border-bottom: 1px solid var(--maya-line);
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--maya-line);
	color: var(--maya-ink-muted);
	font-size: 12px;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events p {
	margin: 0 0 10px;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events li + li {
	margin-top: 16px;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events :is(strong, small) {
	display: block;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events strong {
	color: var(--maya-ink);
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events small {
	margin: 3px 0 6px;
	font-size: 11px;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events a {
	color: var(--maya-gold-bright);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.sunnys-maya-calendar .sunnys-maya-calendar__year-events .sunnys-maya-calendar__year-event-date-note {
	margin: 12px 0 0;
	font-size: 11px;
}
/* /Maya year details */

/* Maya year-symbol meaning: continue the existing explanation typography. */
.sunnys-maya-calendar__result [data-maya-primary-meaning].sunnys-maya-calendar__meaning-with-year {
	margin-bottom: 0;
}

.sunnys-maya-calendar .sunnys-maya-calendar__result > [data-maya-year-meaning] {
	margin-top: 0;
	margin-bottom: 0;
	overflow-wrap: anywhere;
}
.sunnys-maya-calendar .sunnys-maya-calendar__result > [data-maya-year-meaning] + .sunnys-maya-calendar__year-events {
	margin-top: 12px;
}
/* /Maya year-symbol meaning */
