@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-Regular.ttf") format("truetype");
	font-weight: normal;
	font-style: normal;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-Italic.ttf") format("truetype");
	font-weight: normal;
	font-style: italic;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-Medium.ttf") format("truetype");
	font-weight: 500;
	font-style: normal;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-MediumItalic.ttf") format("truetype");
	font-weight: 500;
	font-style: italic;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-SemiBold.ttf") format("truetype");
	font-weight: 600;
	font-style: normal;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-SemiBoldItalic.ttf") format("truetype");
	font-weight: 600;
	font-style: italic;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-Bold.ttf") format("truetype");
	font-weight: bold;
	font-style: normal;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-BoldItalic.ttf") format("truetype");
	font-weight: bold;
	font-style: italic;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-ExtraBold.ttf") format("truetype");
	font-weight: 800;
	font-style: normal;
}
@font-face {
	font-family: "EB Garamond";
	src: local("EB Garamond"), url("../resx/fonts/EBGaramond/EBGaramond-ExtraBoldItalic.ttf") format("truetype");
	font-weight: 800;
	font-style: italic;
}

@keyframes bobbing {
	0% { bottom: 1em; }
	100% { bottom: 2em; }
}
@keyframes pulsing {
	0% { opacity: 1; }
	100% { opacity: 0.5; }
}
.r-show .r-pulse {
	animation: "pulsing" 1s linear infinite alternate running;
}
@keyframes wrong {
	0% { left: 0px; }
	14.29% { left: -0.25rem; }
	28.57% { left: 0.25rem; }
	42.86% { left: -0.25rem; }
	57.14% { left: 0.25rem; }
	71.43% { left: -0.25rem; }
	85.71% { left: 0.25rem; }
	100% { left: 0px; }
}
.wrong {
	animation-name: wrong;
  animation-duration: 500ms;
  animation-fill-mode: forwards;
}
@keyframes swaying {
	0% { background-position-x: 0px; }
	100% { background-position-x: 60px; }
}

* {
	box-sizing: border-box;
	-webkit-user-select: none; /* Safari */
  -ms-user-select: none; /* IE 10 and IE 11 */
  user-select: none; /* Standard syntax */
	line-height: 1.2em;
}
input:focus,
textarea:focus {
	outline: none;
}

html, body {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	font-size: 20px;
	font-family: "Garamond", "EB Garamond";
	overflow-x: hidden;
	overflow-y: auto;
}

body {
	--contentInset: 1rem;
	--bgWidth: 500px;
	--bgHeight: 96px;
	--sectionPadding: 4em;
}

.pg-width {
	width: 1024px;
	margin: 0px auto;
	position: relative;
}

header {
	--headerHeight: 30vh;
	width: 100%;
	background-image: url(../resx/waves/waves-top.svg);
	background-size: var(--bgWidth) auto;
	background-position: center bottom;
	background-repeat: repeat-x;
	height: calc(var(--headerHeight) + var(--bgHeight));
	position: relative;

	transition: height 2s 0.5s;
}
body.scrolled header {
	transition: none;
}
header>div {
	display: flex;
	align-items: center;
	width: 100%;
	height: var(--headerHeight);

	transition: height 2s 0.5s;
}
#h-logo {
	flex: 20vh 0 auto;
	height: 20vh;

	transition: height 2s 0.5s;
}
header #h-logo #h-logo-b,
header #h-logo #h-logo-k {
	opacity: 0;
	transition: opacity 0.25s;
}
header:hover #h-logo #h-logo-b,
header:hover #h-logo #h-logo-k {
	opacity: 1;
}
#h-name,
#h-date {
	flex: 1 0 auto;
	height: 3em;
	opacity: 1;

	transition: opacity 2s 2.5s;
}
#h-name {
	text-align: right;
}
#h-name>img,
#h-date>img {
	max-height: 100%;
	max-width: 100%;
	display: inline-block;
}
#h-name>img.mob,
#h-date>img.mob {
	display: none;
}

#h-enter {
	position: absolute;
	bottom: calc(calc(var(--bgWidth) * 0.192) + 5vh);
	left: 30vw;
	width: 40vw;
	font-size: 1.2em;

	opacity: 0;
	filter: blur(20px);

	transition: opacity 0.5s, filter 0.5s;
}

input[type="submit"],
input[type="button"],
button,
a.button-link {
	font-family: "Garamond", "EB Garamond";
	background: white;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	font-size: 1em;
	cursor: pointer;
	display: block;
	width: 100%;
	padding: 0.25em;
	margin: 0;
	color: black;
}

.cute-border {
	border: 0.5em solid transparent;
	border-image: url('../resx/borders/cb.svg') 10% stretch;
	background-clip: padding-box;
	box-shadow: rgba(0,0,0,0) 0 0 0.75em inset;
	transition: box-shadow 0.25s;
}
input[type="submit"].cute-border:hover,
input[type="button"].cute-border:hover,
button.cute-border:hover,
a.button-link.cute-border:hover,
input:not([type="radio"]).cute-border:focus,
textarea.cute-border:focus {
	box-shadow: rgba(0,0,0,0.15) 0 0 0.75em inset;
	border-image: url('../resx/borders/cb-bold.svg') 10% stretch;
}
.r-issue .cute-border {
	border-image: url('../resx/borders/cb-red.svg') 10% stretch;
}

.boring-border {
	border: 0.5em solid transparent;
	border-image: url('../resx/borders/bb-f-0.svg') 5% stretch;
	background-clip: padding-box;
}



#main-content  {
	width: 100%;
	background-image: url('../resx/waves/waves.svg');
	background-size: var(--bgWidth) auto;
	background-position: center top;
	background-repeat: repeat;
	min-height: 20vh;
}
main {
	opacity: 1;
	position: relative;
	padding-top: calc(70vh - var(--bgHeight));

	transition: opacity 2s 4.5s;
}

a {
	color: #4590B3;
	transition: color 0.5s;
}
a:hover {
	color: #256D8F;
}


section {
	padding-top: var(--sectionPadding);
	padding-bottom: var(--sectionPadding);
	width: 100%;
}

section#main-title {
	height: calc(70vh - var(--bgHeight));
	filter: blur(0px);
	position: relative;
	margin-bottom: calc(calc(70vh - var(--bgHeight)) * -1);
	top: calc(calc(70vh - var(--bgHeight)) * -1);
	display: flex;
	align-items: center;
	padding: 0px !important;

	transition: filter 2s 4s;
}
section#main-title>div.title-wrap {
	position: relative;
	padding-bottom: 10vh;
}
h1 {
	margin-top: 0px;
	margin-bottom: 0px;
	font-weight: normal;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	-webkit-text-stroke: 10px white;
	text-shadow: 1px 5px 50px 2px white;
	text-align: center;
	font-size: 3em;
	width: 100%;
}
h1>span {
	text-align: left;
	font-family: "EB Garamond";
	font-style: italic;
	text-transform: none;
	font-size:  0.6em;
	display: block;
	letter-spacing: 0.1em;
}
h1.h1-overlay {
	-webkit-text-stroke: 0px transparent;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}
img#m-scroll-down {
	position: absolute;
	left: calc(50% - 3em);
	bottom: 1em;
	width: 6em;
	height: 3em;
	animation: "bobbing" 1s linear infinite alternate running;
	opacity: 0.8;
	transition: opacity 2s 2.5s;
}
body.scrolled img#m-scroll-down { opacity: 0; }

section.bg-pale {
	background-color: #FFFFFF99;
}
section.bg-white {
	background-color: #FFFFFFCC;
}
section.top {
	border-top: 0.5em solid transparent;
}
section.bottom {
	border-bottom: 0.5em solid transparent;
}
section.bb-09-9c {
	border-image: url(../resx/borders/bb-09-9c.svg) 5% stretch;
	background-clip: padding-box;
}
section.bb-9c-c0 {
	border-image: url(../resx/borders/bb-9c-c0.svg) 5% stretch;
	background-clip: padding-box;
}
section.bb-9c-c9 {
	border-image: url(../resx/borders/bb-c-9.svg) 5% stretch;
	background-clip: padding-box;
}
section.bb-9c-cf {
	border-image: url(../resx/borders/bb-9c-cf.svg) 5% stretch;
	background-clip: padding-box;
}

.m-split {
	flex-direction: row !important;
}
.m-split>h2 {
	flex: 0 0 auto;
}
.m-plit>div {
	flex: 1 1 100%;
}

#m-nav-col {
	position: absolute;
	top: calc(calc(70vh - var(--bgHeight)) + var(--sectionPadding));
	bottom: calc(var(--sectionPadding) + 0.5em);
	left: calc(calc(50% - 512px) - var(--contentInset));
	width: 200px;
}
nav {
	position: sticky;
	top: var(--contentInset);
	background-color: white;
	padding: calc(var(--contentInset) / 2);
	z-index: 100;
}
nav>a {
	padding: 0.75em;
	margin: 0;
	width: 100%;
	text-decoration: none;
	cursor: pointer;
	line-height: 0.9em;
	display: flex;
	flex-direction: column;
	align-items: center;
	color: #b29c45;
}
nav>a>span,
h2>span {
	display: block;
	text-align: left;
	font-style: normal;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}
nav>a>span.small-font,
h2>span.small-font {
	font-style: italic;
	text-transform: lowercase;
	letter-spacing: 0;
}
.nudge-left { padding-right: 1em; }
.nudge-right { padding-left: 1em; }
.nudge-left.double { padding-right: 2em !important; }
.nudge-right.double { padding-left: 2em !important; }
.nudge-left.treble { padding-right: 3.5em !important; }
.nudge-right.treble { padding-left: 3.5em !important; }

.pg-width.nav-padding {
	padding-left: calc(200px + var(--contentInset));
}

h2 {
	margin-top: 0;
	margin-bottom: var(--contentInset);
	font-weight: normal;
	line-height: 0.8em;
	display: flex;
	flex-direction: column;
	align-items: center;
}


form {
	width: 100%;
	background-color: white;
	padding: calc(var(--contentInset) * 2);
	padding-bottom: 0;
	position: relative;
	background-image: url('../resx/waves/waves.svg');
	animation: "swaying" 2s ease-in-out infinite alternate paused;
	background-size: contain;
	background-position-y: 0px;
	background-repeat: repeat;
}
form.r-loading {
	animation-play-state: running;
}
form:before {
	position: absolute;
	z-index: 0;
	inset: 0px;
	content: ' ';
	display: block;
	background-color: rgba(255, 255, 255, 1);
	box-shadow: 0px 0px 2em 1em white inset;
	transition: background-color 0.25em;
}
form.r-loading:before {
	background-color: rgba(255, 255, 255, 0.85);
}

form .r-wrap {
	display: grid;
  grid-template-rows: 0fr;
	opacity: 0;
	filter: blur(20px);

  transition: grid-template-rows 0.5s, opacity 0.5s, filter 0.5s;
}
form .r-wrap.r-show {
  grid-template-rows: 1fr;
	opacity: 1;
	filter: blur(0px);

  transition: grid-template-rows 0.5s, opacity 0.5s 0.5s, filter 0.5s 0.5s;
}
form .r-slide {
	overflow: hidden;
}

#r-name-check {
	margin-bottom: 2.5em;
}

fieldset {
	padding: calc(var(--contentInset) / 2) 0 calc(var(--contentInset) * 3);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: calc(var(--contentInset) / 2);
	border: 0;
	margin: 0;
	transition: opacity 0.5s, color 0.5s;
}
fieldset>*:not(.r-half) {
	grid-column: 1 / span 2;
}
fieldset:disabled {
	opacity: 0.5;
}
fieldset.r-issue {
	color: darkred;
}

input, textarea {
	margin: 0;
	padding: 0.25em;
	font-size: 1em;
	font-family: "Garamond", "EB-Garamond";
	position: relative;
	top: 0;
	left: 0;
}

legend {
	font-style: normal;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	text-align: center;
	padding-bottom: calc(var(--contentInset) / 2);
	top: calc(var(--contentInset) / 2);
	position: relative;
}
legend>span {
	font-style: italic;
	text-transform: lowercase;
	letter-spacing: 0;
	position: relative;
	top: -0.6em;
}
form span {
	font-style: italic;
	text-align: center;
}

.r-radio {
	display: flex;
	align-items: center;
	justify-content: center;
}
.r-radio>label {
	flex: 0 0 auto;
	padding-left: calc(var(--contentInset) / 2);
	cursor: pointer;
}
.r-radio>input[type='radio'] {
	flex: 0 0 auto;
	font-size: 1em;
	cursor: pointer;
	width: 1.2em;
	height: 1.2em;
	position: relative;
	visibility: hidden;
	margin: 0;
}
.r-radio>input[type='radio']:before {
	content: ' ';
	display: block;
	position: absolute;
	inset: 0px;
	visibility: visible;
	border: 0.25em solid transparent;
	border-image: url(../resx/borders/mb.svg) 10% stretch;
}
.r-issue .r-radio>input[type='radio']:before {
	border-image: url(../resx/borders/mb-red.svg) 10% stretch;
}
.r-radio>input[type='radio']:after {
	content: ' ';
	display: block;
	position: absolute;
	inset: 0.15em;
	visibility: visible;
	opacity: 0;
	background-image: url(../resx/logo/logo.svg);
	background-size: contain;
	transition: opacity 0.5s;
}
.r-radio>input[type='radio']:checked:after {
	opacity: 1;
}

textarea {
	height: 7em;
	resize: none;
}

.r-carousel {
	width: 100%;
	overflow-x: hidden;
}
.r-car-container {
	width: 220%;
	position: relative;
	display: flex;
	align-items: center;
	column-gap: 9.1%;
	left: 0;
}
.r-car-container.right {
	left: -120%;
}
.r-show .r-car-container {
	transition: left 1s;
}
.r-car-item {
	flex: 1 0 45%;
	opacity: 0;
}
.r-car-item.r-show {
	opacity: 1;
}
.r-show .r-car-item {
	transition: opacity 0.5s;
}


h3 {
	margin: 0;
	font-weight: normal;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	display: inline-block;
	font-size: 1em;
}

sup.hidden-sup {
	color: transparent;
	width: 0px;
	overflow-x: hidden;
	visibility: hidden;
}

.m-two-cols {
	display: grid;
	width: 100%;
	grid-template-columns: 1fr 1fr;
	gap: var(--contentInset);
	align-items: start;
}

.m-travel {
	background-color: white;
	padding: var(--contentInset);
}

button.m-accordion {
	border: none;
	position: relative;
	padding: var(--contentInset);
}
button.m-accordion:after {
	content: '';
	display: block;
	position: absolute;
	right: calc(var(--contentInset) / 2);
	z-index: 100;
	top: calc(var(--contentInset) / 2);
	bottom: calc(var(--contentInset) / 2);
	aspect-ratio: 1;
	background-image: url(../resx/caret.svg);
	background-size: cover;
	transform: rotate(0deg);
	transition: transform 0.25s;
}
button.m-accordion.m-show:after {
	transform: rotate(180deg);
}
button.m-accordion>span {
	text-transform: lowercase;
	letter-spacing: 0px;
	font-style: italic;
}

div.m-accordion {
	display: grid;
  grid-template-rows: 0fr;
	opacity: 0;
	filter: blur(20px);

  transition: grid-template-rows 0.5s 0.25s, opacity 0.5s, filter 0.5s;
}
div.m-accordion.m-show {
	grid-template-rows: 1fr;
	opacity: 1;
	filter: blur(0px);

  transition: grid-template-rows 0.5s, opacity 0.5s 0.25s, filter 0.5s 0.25s;
}
div.m-accordion>div {
	overflow: hidden;
}

div.m-separator {
	height: calc(var(--contentInset) / 2);
	width: 100%;
	background-image: url(../resx/borders/hr.svg);
	background-size: 100% 100%;
}

.m-travel-grid {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--contentInset);
}
.m-travel-grid>h3 {
	margin: 0;
	text-align: right;
}


footer {
	width: 100%;
	opacity: 1;
	padding-top: 5em;
	overflow-y: hidden;
	background-color: white;

	transition: opacity 4s 1s;
}

#f-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
}
#f-content>svg {
	height: 5em;
	width: 5em;
	flex: 0 0 auto;
}
#f-content>span {
	flex: 1 1 50%;
}
#f-content>span.f-right {
	text-align: right;
}
#f-content a {
	text-decoration: none;
	font-style: italic;
	cursor: pointer;
}

footer #f-logo #f-logo-b,
footer #f-logo #f-logo-k {
	opacity: 0;
	transition: opacity 0.25s;
}
footer:hover #f-logo #f-logo-b,
footer:hover #f-logo #f-logo-k {
	opacity: 1;
}

#f-crests {
	width: 100%;
	height: calc(calc(var(--bgWidth) * 0.192) + 2em);
	background-image: url(../resx/waves/waves-top.svg);
	background-size: var(--bgWidth) auto;
	background-position: center bottom;
	background-repeat: repeat-x;
	margin-top: 3em;
	position: relative;
	z-index: 200;
}
#f-deep {
	width: 100%;
	height: 15vh;
	background-image: url(../resx/waves/waves.svg);
	background-size: var(--bgWidth) auto;
	background-position: center top;
	background-repeat: repeat;
	position: relative;
	z-index: 200;
}

#f-login {
	position: absolute;
	z-index: 180;
	left: 0;
	right: 0;
	top: calc(100% + 50vh);
	display: flex;
	align-content: center;
	justify-content: center;
	height: 2.7em;
	gap: var(--contentInset);
	opacity: 0;

	transition: top 2s, opacity 1s;
}
#f-login.f-risen {
	top: calc(100% + 1em);
	opacity: 1;
	transition: top 2s, opacity 1s 1s;
}

#f-pass {
	width: 25vw;
	min-width: 400px;
}
#f-go {
	padding: 0.3em;
	font-size: 1.5em;
}
#f-login:not(.f-risen)>#f-go {
	cursor: default;
}

#f-account {
	position: relative;
	opacity: 1;
	transition: color 0.25s 0.25s, opacity 0.25s;
}
#f-account.f-rising {
	opacity: 0.5;
}
#f-account.f-risen {
	color: transparent !important;
	transition: color 0.25s, opacity 0.25s;
}
#f-account:before {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	content: 'Close';
	opacity: 0;
	color: black !important;
	transition: opacity 0.5s;
}
#f-account.f-risen:before {
	opacity: 1;
	transition: opacity 0.5s 0.5s;
}

.mob-only { display: none !important; }

@media (max-width:1050px) {
	body {
		--bgWidth: 50vw;
	}
	.pg-width {
		width: 800px;
	}


	#m-nav-col {
		left: calc(calc(50% - 400px) - var(--contentInset));
	}
}


@media only screen and (hover: none) and (pointer: coarse), (max-width: 850px) {
	html, body {
		font-size: 2.4vmax;
	}

	body {
		--bgWidth: 100vw;
	}

	.pg-width {
		width: 100%;
	}

	header>div {
		padding: 0 var(--contentInset);
	}
	#h-enter {
		left: 10vw;
		width: 80vw;
	}
	#h-name,
	#h-date {
		height: 70%;
		display: flex;
		align-items: center;
	}
	#h-name {
		justify-content: flex-end;
	}
	#h-name>img,
	#h-date>img {
		display: none;
	}
	#h-name>img.mob,
	#h-date>img.mob {
		display: inline-block;
	}

	.non-mob { display: none !important; }
	.mob-only { display: block !important; }

	#m-nav-col {
		position: relative;
		width: 100%;
		top: 0;
		left: 0;
		padding: var(--contentInset) ;
	}
	nav {
		position: relative;
		top: 0;
		display: grid;
		grid-template: 1fr 1fr 1fr / 1fr 1fr;
		justify-items: center;
		align-items: center;
	}

	.pg-width,
	h1.h1-overlay {
		padding: 0 var(--contentInset) !important;
	}

	fieldset>*:not(.r-force-half) {
		grid-column: 1 / span 2;
	}

	.m-two-cols {
		grid-template-columns: 1fr;
	}

	.m-travel-grid {
		grid-template-columns: 1fr;
	}
	.m-travel-grid>h3 {
		text-align: left;
	}
	.m-travel-grid>span {
		padding-left: calc(2 * var(--contentInset));
	}
}