:root {
	--navy: #061a38;
	--blue: #103b72;
	--ink: #10203a;
	--snow: #f4f8fb;
	--gold: #eabf71;
	--paper: #f8f6f1;
	--line: rgba(13, 42, 76, .17);
	--serif: Georgia, 'Times New Roman', serif;
	--sans: Arial, Helvetica, sans-serif
}

#main {
	margin: 0;
	color: var(--ink);
	background: var(--paper);
	font: 16px/1.55 var(--sans);
	overflow-x: hidden
}

#main .container {
	width: min(1180px, calc(100% - 48px));
	margin: auto
}

#main .section {
	position: relative;
	padding: 112px 0
}

#main h1,
#main h2,
#main h3,
#main p {
	margin-top: 0
}

#main h1,
#main h2,
#main h3 {
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -.035em;
	color: white;
}

#main h1 {
	font-size: clamp(2.1rem, 6vw, 6.7rem);
	max-width: 850px
}

#main h2 {
	font-size: clamp(2.5rem, 5vw, 4.6rem);
	max-width: 850px
}

#main h3 {
	font-size: 1.7rem
}

#main .eyebrow {
	font-size: .71rem;
	letter-spacing: .15em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--gold);
	margin-bottom: 20px
}

#main .eyebrow--dark {
	color: #8f5d1c
}

#main .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 12px 25px;
	background: var(--gold);
	color: #0b203f;
	border: 1px solid var(--gold);
	border-radius: 99px;
	text-decoration: none;
	font-weight: 700;
	transition: .2s transform, .2s background
}

#main .button:hover {
	transform: translateY(-2px);
	background: #f5d08d
}

#main .button--small {
	min-height: 40px;
	padding: 7px 16px;
	font-size: .86rem
}

#main .button--ghost {
	color: #fff;
	background: transparent;
	border-color: rgba(255, 255, 255, .65)
}

#main .button--ghost:hover {
	background: #fff;
	color: var(--navy)
}

#main .site-header {
	position: absolute;
	z-index: 3;
	top: 0;
	left: 0;
	right: 0;
	display: flex;
	gap: 24px;
	align-items: center;
	justify-content: flex-end;
	padding: 22px max(32px, calc((100vw - 1180px)/2));
	color: #fff
}

#main .brand {
	color: #fff;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 9px;
	margin-right: auto;
	font-size: .7rem;
	letter-spacing: .05em;
	line-height: 1.15
}

#main .brand strong {
	font-size: 1rem;
	letter-spacing: 0
}

#main .brand-mark {
	font: 1.45rem var(--serif);
	display: grid;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, .6);
	width: 36px;
	height: 36px;
	border-radius: 50%
}

#main .header-link {
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	font-size: .9rem
}

#main .hero {
	aspect-ratio: 1.78;
	isolation: isolate;
	color: #fff;
	display: grid;
	align-items: center;
	overflow: hidden
}

#main .hero__image,
#main .broadcast__image,
#main .kids__image,
#main .january__pattern,
#main .week__image,
#main .final__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: -2
}

#main .hero__image {
	object-position: center
}

#main .hero__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(1, 11, 29, .88), rgba(2, 12, 29, .49) 45%, rgba(2, 12, 29, .06) 76%), linear-gradient(0deg, rgba(1, 12, 31, .43), transparent 45%)
}

#main .hero__content {
	padding-top: 76px
}

#main .hero__lead {
	max-width: 560px;
	font-size: clamp(1.05rem, 1.6vw, 1.26rem);
	margin: 26px 0 34px
}

#main .hero__scroll {
	position: absolute;
	bottom: 28px;
	left: 50%;
	translate: -50%;
	font-size: .75rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	white-space: nowrap
}

#main .hero__scroll span {
	font-size: 1.5rem;
	margin-left: 8px
}

#main .split {
	display: grid;
	grid-template-columns: 1fr 1.08fr;
	gap: clamp(45px, 7vw, 120px);
	align-items: center
}

#main .live {
	background: #f8f6f1
}

#main .live__copy>p {
	max-width: 600px;
	font-size: 1.05rem
}

#main .live blockquote {
	margin: 36px 0 0;
	padding: 0 0 0 22px;
	border-left: 2px solid var(--gold);
	font: clamp(1.5rem, 2.3vw, 2.25rem)/1.08 var(--serif);
	color: #143a70
}

#main .image-frame {
	margin: 0;
	overflow: hidden;
	border-radius: 2px;
	box-shadow: 0 30px 60px rgba(10, 23, 42, .18);
	min-height: 440px
}

#main .image-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block
}

#main .switcher {
	background: var(--navy);
	color: #fff;
	overflow: hidden
}

#main .switcher__inner {
	display: grid;
	grid-template-columns: .7fr 1.3fr;
	gap: 60px;
	align-items: center
}

#main .switcher__lead {
	font: clamp(1.5rem, 2.4vw, 2.3rem)/1.2 var(--serif);
	color: #f0cf91
}

#main .television {
	background: #543214;
	border: 12px solid #3c210c;
	border-radius: 24px;
	padding: 13px;
	box-shadow: 0 22px 0 #1c0d04, 0 30px 50px #0008
}

#main .television__top {
	color: #efc681;
	font: 1.25rem var(--serif);
	padding: 0 8px 8px
}

#main .television__screen {
	position: relative;
	aspect-ratio: 16/8;
	overflow: hidden;
	border: 6px solid #170c05;
	border-radius: 13px;
	background: #000
}

#main .television__screen img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	display: block
}

#main .television__caption {
	position: absolute;
	left: 18px;
	bottom: 16px;
	background: #061a38e8;
	padding: 7px 12px;
	border-radius: 99px;
	font-size: .85rem
}

#main .television__panel {
	display: flex;
	gap: 15px;
	align-items: center;
	justify-content: space-between;
	color: #f7dec2;
	padding: 12px 4px 1px
}

#main .television__panel p {
	margin: 0;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .1em
}

#main .television__buttons {
	display: flex;
	gap: 8px
}

#main .channel {
	border: 1px solid #ae7d48;
	background: transparent;
	color: #ffe4bd;
	padding: 7px 10px;
	border-radius: 20px;
	cursor: pointer;
	font-size: .76rem
}

#main .channel.is-active {
	color: #251000;
	background: #f1c27c;
	border-color: #f1c27c
}

#main .broadcast {
	min-height: 760px;
	color: #fff;
	display: flex;
	align-items: center;
	isolation: isolate
}

#main .broadcast__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #071935ed 0%, #071935ce 43%, #07193549 75%, #07193518)
}

#main .broadcast__content {
	position: relative
}

#main .broadcast__lead {
	font-size: 1.25rem;
	max-width: 570px
}

#main .on-air {
	width: min(600px, 100%);
	padding: 20px 26px;
	background: #fff1;
	border: 1px solid #fff3;
	backdrop-filter: blur(8px);
	margin-top: 34px
}

#main .on-air__label {
	font-family: var(--serif);
	font-size: 1.15rem
}

#main .on-air ol {
	list-style: none;
	margin: 0;
	padding: 0
}

#main .on-air li {
	display: grid;
	grid-template-columns: 112px 1fr;
	gap: 18px;
	padding: 16px 0;
	border-top: 1px solid #fff2
}

#main .on-air time {
	font-family: var(--serif);
	color: #f0c275;
	font-size: 1.1rem
}

#main .on-air small {
	color: #fff9
}

#main .kids {
	min-height: 830px;
	color: white;
	display: flex;
	align-items: end;
	isolation: isolate;
	padding-bottom: 70px
}

#main .kids:after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, #061a38cf 0%, #061a3878 45%, #061a3808 75%), linear-gradient(0deg, #061a38bd, transparent 60%)
}

#main .kids__inner {
	display: grid;
	grid-template-columns: .75fr 1.25fr;
	gap: 40px;
	align-items: end
}

#main .kids__intro h2 {
	max-width: 500px
}

#main .kids__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px
}

#main .kids__cards article {
	background: #fffef6e8;
	color: var(--ink);
	padding: 24px 20px;
	min-height: 245px;
	border-top: 3px solid var(--gold)
}

#main .kids__cards span {
	color: #9b6621;
	font: 1.1rem var(--serif)
}

#main .kids__cards h3 {
	font-size: 1.35rem;
	margin: 15px 0
}

#main .kids__cards p {
	font-size: .87rem;
	margin: 0
}

#main .menu {
	background: #f2e9d9;
	overflow: hidden
}

#main .menu:before {
	content: "";
	background: url('assets/food.jpg') center/cover;
	position: absolute;
	inset: 0;
	opacity: .14;
	mix-blend-mode: multiply
}

#main .menu__inner {
	position: relative;
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: 80px;
	align-items: center
}

#main .menu__quote {
	font: 1.6rem/1.15 var(--serif);
	color: #9c6127
}

#main .menu__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: #d7c4a9;
	border: 1px solid #d7c4a9
}

#main .menu__grid div {
	background: #fdf9f1;
	min-height: 130px;
	display: flex;
	align-items: end;
	padding: 17px;
	font: 1.45rem/1 var(--serif);
	color: #23436d
}

#main .menu__grid div:before {
	content: '✦';
	position: absolute;
	align-self: flex-start;
	color: #d6ae67;
	font-size: 1.4rem
}

#main .january {
	isolation: isolate;
	overflow: hidden
}

#main .january__pattern {
	z-index: -2;
	opacity: .72
}

#main .january:after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: #fff8
}

#main .january__content {
	text-align: center
}

#main .january__content h2,
#main .january__lead {
	margin-left: auto;
	margin-right: auto
}

#main .january__lead {
	max-width: 675px;
	font: clamp(1.2rem, 2vw, 1.65rem)/1.2 var(--serif)
}

#main .day-cards {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
	margin-top: 48px;
	text-align: left
}

#main .day-cards article {
	background: #fffffff2;
	border: 1px solid #ffffff;
	padding: 21px 17px;
	box-shadow: 0 10px 28px #0b4d7917
}

#main .day-cards span {
	font-size: .7rem;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #8b5c1f
}

#main .day-cards p {
	margin: 11px 0 0;
	font: 1.13rem/1.15 var(--serif)
}

#main .week {
	background: #e7f4fc;
	min-height: 720px;
	isolation: isolate;
	display: flex;
	align-items: center
}

#main .week__image {
	z-index: -2;
	opacity: .52
}

#main .week:after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(90deg, #edf8ffec 5%, #edf8ffad 57%, #edf8ff25)
}

#main .week__content {
	max-width: 760px;
	margin-left: max(24px, calc((100vw - 1180px)/2));
	margin-right: 24px
}

#main .week__content>p {
	font-size: 1.1rem
}

#main .program-button {
	width: 100%;
	border: 1px solid #8db9d4;
	background: #ffffffb5;
	color: var(--ink);
	padding: 19px 22px;
	text-align: left;
	border-radius: 4px;
	font: 1.12rem/1.25 var(--serif);
	cursor: pointer;
	margin-top: 20px;
	display: flex;
	gap: 20px;
	justify-content: space-between
}

#main .program-button span {
	font: 1.7rem Arial;
	color: #377aa4
}

#main .week__more {
	padding: 18px 24px;
	background: #fffc
}

#main .week__more p {
	margin: 0;
	padding: 8px 0;
	border-bottom: 1px solid #77a3bf55
}

#main .tour {
	background: #fff
}

#main .tour h2 {
	margin-bottom: 38px
}

#main .tour__tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 20px
}

#main .tour__tabs button {
	border: 1px solid #abc3d0;
	background: #fff;
	padding: 10px 18px;
	border-radius: 30px;
	cursor: pointer;
	font: 600 .86rem var(--sans);
	color: #173967
}

#main .tour__tabs button.is-active {
	background: #123968;
	color: white;
	border-color: #123968
}

#main .tour__stage {
	display: grid;
	grid-template-columns: 1.45fr .55fr;
	min-height: 570px;
	background: #102f5a
}

#main .tour__stage img {
	width: 100%;
	height: 100%;
	min-height: 570px;
	object-fit: cover
}

#main .tour__note {
	padding: 42px 35px;
	color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: end
}

#main .tour__index {
	font-size: .75rem;
	letter-spacing: .11em;
	color: #edc274
}

#main .tour__note h3 {
	font-size: 2.55rem;
	margin: 0 0 18px
}

#main .tour__note p:last-child {
	margin: 0
}

#main .packages {
	background: #09274e;
	color: #fff
}

#main .packages h2 {
	margin-bottom: 24px
}

#main .early-booking {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	align-items: center;
	gap: 18px;
	padding: 15px 20px;
	border: 1px solid #eac27d70;
	background: #fff1;
	margin-bottom: 50px
}

#main .early-booking span {
	color: #eec97f;
	font: 1.3rem var(--serif)
}

#main .early-booking p {
	margin: 0;
	font-size: .88rem
}

#main .packages__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px
}

#main .package {
	border: 1px solid #7895b766;
	padding: 32px 29px
}

#main .package--featured {
	background: #fff;
	color: #122846;
	border-color: #fff
}

#main .package__label {
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #a66f24;
	font-weight: bold;
	margin-bottom: 12px
}

#main .package h3 {
	font-size: 2rem;
	margin-bottom: 27px
}

#main .package dl {
	margin: 0
}

#main .package dl>div {
	padding: 13px 0;
	border-top: 1px solid currentColor;
	opacity: .98
}

#main .package dt {
	font-weight: bold;
	font-size: .88rem;
	margin-bottom: 5px
}

#main .package dd {
	margin: 0;
	font-size: .86rem;
	white-space: pre-line
}

#main .video {
	background: #f8f6f1
}

#main .video h2 {
	margin-bottom: 36px
}

#main .video__embed {
	position: relative;
	aspect-ratio: 16/9;
	background: #061a38;
	overflow: hidden
}

#main .video__embed>img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: brightness(.7)
}

#main .video__play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: max-content;
	height: max-content;
	border: 0;
	background: #fff;
	color: #102b51;
	padding: 15px 22px;
	border-radius: 99px;
	font-weight: bold;
	cursor: pointer;
	font-size: 1rem
}

#main .video__play span {
	color: #c48a31;
	margin-right: 10px
}

#main .video__embed iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block
}

#main .final {
	min-height: 700px;
	isolation: isolate;
	color: #fff;
	display: flex;
	align-items: center
}

#main .final__image {
	z-index: -2
}

#main .final__veil {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, #031229e8, #031229ad 48%, #03122918)
}

#main .final__content>p:not(.eyebrow) {
	font-size: 1.2rem;
	max-width: 600px
}

#main .final__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 13px;
	margin-top: 28px
}

#main .footer {
	background: #061a38;
	color: #fff;
	padding: 22px 0;
	font-size: .82rem
}

#main .footer .container {
	display: flex;
	justify-content: space-between
}

#main .footer a {
	color: #fff
}

#main .snow {
	position: fixed;
	inset: 0;
	z-index: 10;
	pointer-events: none;
	overflow: hidden
}

#main .snow i {
	position: absolute;
	width: 5px;
	height: 5px;
	background: #fff;
	border-radius: 50%;
	opacity: .6;
	animation: snowfall linear infinite;
	filter: blur(.3px)
}

#main .snow i:nth-child(1) {
	left: 5%;
	animation-duration: 16s;
	animation-delay: -9s
}

#main .snow i:nth-child(2) {
	left: 14%;
	animation-duration: 22s;
	animation-delay: -5s;
	width: 3px;
	height: 3px
}

#main .snow i:nth-child(3) {
	left: 25%;
	animation-duration: 19s;
	animation-delay: -14s
}

#main .snow i:nth-child(4) {
	left: 35%;
	animation-duration: 25s;
	animation-delay: -7s;
	width: 3px;
	height: 3px
}

#main .snow i:nth-child(5) {
	left: 45%;
	animation-duration: 17s;
	animation-delay: -2s
}

#main .snow i:nth-child(6) {
	left: 55%;
	animation-duration: 24s;
	animation-delay: -18s;
	width: 3px;
	height: 3px
}

#main .snow i:nth-child(7) {
	left: 66%;
	animation-duration: 19s;
	animation-delay: -10s
}

#main .snow i:nth-child(8) {
	left: 74%;
	animation-duration: 27s;
	animation-delay: -21s;
	width: 3px;
	height: 3px
}

#main .snow i:nth-child(9) {
	left: 82%;
	animation-duration: 18s;
	animation-delay: -3s
}

#main .snow i:nth-child(10) {
	left: 92%;
	animation-duration: 22s;
	animation-delay: -16s;
	width: 3px;
	height: 3px
}

#main .snow i:nth-child(11) {
	left: 51%;
	animation-duration: 28s;
	animation-delay: -11s
}

#main .snow i:nth-child(12) {
	left: 30%;
	animation-duration: 20s;
	animation-delay: -20s;
	width: 3px;
	height: 3px
}

@keyframes snowfall {
	from {
		transform: translate3d(0, -15vh, 0)
	}

	to {
		transform: translate3d(30px, 110vh, 0)
	}
}

@media (prefers-reduced-motion:reduce) {


	#main .snow i {
		animation: none
	}

	#main .button {
		transition: none
	}
}

@media(max-width:900px) {
	#main .section {
		padding: 78px 0
	}

	#main .split,
	#main .switcher__inner,
	#main .menu__inner,
	#main .kids__inner {
		grid-template-columns: 1fr
	}

	#main .site-header {
		padding: 15px 24px
	}

	#main .header-link {
		display: none
	}

	#main .hero {}

	#main .hero__content {
		padding-top: 105px;
		text-align: center;
	}

	#main .image-frame {
		min-height: 300px
	}

	#main .switcher__inner {
		gap: 30px
	}

	#main .kids {
		min-height: 880px;
		align-items: end
	}

	#main .kids__cards {
		grid-template-columns: repeat(3, 1fr)
	}

	#main .day-cards {
		grid-template-columns: repeat(3, 1fr)
	}

	#main .tour__stage {
		grid-template-columns: 1.3fr .7fr
	}

	#main .packages__grid {
		grid-template-columns: 1fr
	}

	#main .week__content {
		margin: auto;
		width: min(760px, calc(100% - 48px))
	}
}

@media(max-width:620px) {
	#main .container {
		width: min(100% - 32px, 1180px)
	}

	#main .site-header {
		padding: 14px 16px
	}

	#main .site-header .button {
		font-size: .76rem;
		min-height: 36px;
		padding: 6px 12px
	}

	#main .brand-mark {
		width: 30px;
		height: 30px
	}

	#main .hero {
		min-height: 680px
	}

	#main .hero__shade {
		background: linear-gradient(90deg, #010c20e8, #010c20a6 78%, #010c202e)
	}

	#main .hero__scroll {
		font-size: .61rem
	}

	#main .live__copy>p {
		font-size: 1rem
	}

	#main .split {
		gap: 35px
	}

	#main .image-frame {
		min-height: 250px
	}

	#main .television {
		border-width: 8px;
		padding: 9px
	}

	#main .television__panel {
		display: block
	}

	#main .television__panel p {
		margin-bottom: 8px
	}

	#main .channel {
		font-size: .67rem;
		padding: 6px
	}

	#main .broadcast {
		min-height: 690px
	}

	#main .broadcast__veil {
		background: #071935de
	}

	#main .on-air {
		padding: 16px
	}

	#main .on-air li {
		grid-template-columns: 92px 1fr;
		gap: 10px
	}

	#main .kids {
		padding: 65px 0;
		min-height: 930px;
		align-items: end
	}

	#main .kids:after {
		background: linear-gradient(90deg, #061a38e8, #061a3866), linear-gradient(0deg, #061a38e8, transparent)
	}

	#main .kids__cards {
		grid-template-columns: 1fr
	}

	#main .kids__cards article {
		min-height: 0;
		padding: 18px
	}

	#main .menu__inner {
		gap: 40px
	}

	#main .menu__grid {
		grid-template-columns: 1fr
	}

	#main .menu__grid div {
		min-height: 80px
	}

	#main .day-cards {
		grid-template-columns: 1fr 1fr;
		margin-top: 28px
	}

	#main .day-cards article:last-child {
		grid-column: span 2
	}

	#main .week {
		min-height: 760px
	}

	#main .week:after {
		background: #edf8ffd9
	}

	#main .tour__tabs {
		flex-wrap: nowrap;
		overflow: auto;
		padding-bottom: 8px
	}

	#main .tour__tabs button {
		white-space: nowrap
	}

	#main .tour__stage {
		display: block
	}

	#main .tour__stage img {
		height: 340px;
		min-height: 0
	}

	#main .tour__note {
		padding: 27px 22px
	}

	#main .tour__note h3 {
		font-size: 2.1rem
	}

	#main .early-booking {
		grid-template-columns: 1fr;
		gap: 8px
	}

	#main .package {
		padding: 25px 20px
	}

	#main .package h3 {
		font-size: 1.7rem
	}

	#main .final {
		min-height: 640px
	}

	#main .final__veil {
		background: #031229df
	}

	#main .footer .container {
		display: block
	}

	#main .footer a {
		display: block;
		margin-top: 4px
	}
}