/*------------- Scale Input Text -------------*/

:root {
	--canvasScale: 1;
	--subtitleScale: 1;
}

.inputField[type="text"] {
	font-size: calc(30pt * var(--canvasScale));
	font-family: 'LatoBold';
	text-align: center;
	color: #3A5665;
	background: #fff;
	border: calc(5px * var(--canvasScale)) solid #3A5665;
	border-radius: calc(50px * var(--canvasScale));
}

.inputField[type="number"] {
	font-size: calc(24pt * var(--canvasScale));
	font-family: 'LatoBold';
	text-align: center;
	color: #3A5665;
	background: #fff;
	border: calc(1px * var(--canvasScale)) solid #0167cc;
	border-radius: calc(6px * var(--canvasScale));
}

/*------------- Mobile Input Text Sizing -------------*/

@media only screen and (min-device-width: 320px) and (max-device-width: 479px) {

	.inputField[type="text"] {
		font-size: calc(100pt * var(--canvasScale));
		border-radius: calc(150px * var(--canvasScale));
		border: calc(12px * var(--canvasScale)) solid #0167cc;
	}

	.inputField[type="number"] {
		font-size: calc(60pt * var(--canvasScale));
		border: calc(4px * var(--canvasScale)) solid #0167cc;
		border-radius: calc(35px * var(--canvasScale));
	}

}

@media only screen and (min-device-width: 480px) and (max-device-width: 640px) {
	.inputField[type="text"] {
		font-size: calc(50pt * var(--canvasScale));
		border: calc(15px * var(--canvasScale)) solid #0167cc;
	}

	.inputField[type="number"] {
		font-size: calc(30pt * var(--canvasScale));
		border: calc(5px * var(--canvasScale)) solid #0167cc;
		border-radius: calc(15px * var(--canvasScale));
	}

}

/* --- Stability patches for Animate DOM inputs --- */
.inputField {
	/* Make box math predictable */
	box-sizing: border-box;
	display: inline-block;

	/* Prevent iOS zoom quirks & font synth surprises */
	-webkit-text-size-adjust: 100%;
	font-synthesis: none;

	/* Tell the browser these move — allocate GPU layer & avoid repaint bugs */
	transform: translateZ(0);
	/* creates its own composite layer */
	backface-visibility: hidden;
	will-change: transform;

	/* Reduce chances of baseline/line-box drift while moving */
	line-height: 1;
	/* keeps line box tight to font-size */
}

/* Single-line inputs benefit from explicit vertical paddings & height.
   Tune these paddings once; they scale with your --canvasScale just like your fonts. */
.inputField[type="text"],
.inputField[type="number"] {
	padding: calc(12px * var(--canvasScale)) calc(18px * var(--canvasScale));
	height: auto;
	/* let padding control vertical centering across platforms */
}

/* iOS/WebKit sometimes sets internal scroll on inputs during transform;
   this keeps the content box simpler by removing inner shadows/appearances. */
.inputField {
	-webkit-appearance: none;
	appearance: none;
}

/* If you ever scale the stage, keep the input itself logically scale(1)
   and let top/left do the work; this utility class helps if needed. */
.inputField.stay-flat {
	transform: translateZ(0) scale(1) !important;
	transform-origin: 0 0 !important;
}


.inputField[type="text"] {
	line-height: calc(30pt * var(--canvasScale));
}

.inputField[type="number"] {
	line-height: calc(24pt * var(--canvasScale));
}

/* And in your media queries: */
@media only screen and (min-device-width: 320px) and (max-device-width: 479px) {
	.inputField[type="text"] {
		line-height: calc(100pt * var(--canvasScale));
	}

	.inputField[type="number"] {
		line-height: calc(60pt * var(--canvasScale));
	}
}

@media only screen and (min-device-width: 480px) and (max-device-width: 640px) {
	.inputField[type="text"] {
		line-height: calc(50pt * var(--canvasScale));
	}

	.inputField[type="number"] {
		line-height: calc(30pt * var(--canvasScale));
	}
}


/*------------- chatBot Sizing -------------*/

.showChat #chatWindow,
.showChat #contactWrapper,
.showChat #dom_overlay_container,
.showChat #chat-body {
	position: fixed !important;
	width: 100vw !important;
	max-width: 600px !important;
	height: 100vh !important;
	max-height: 100vh !important;
	top: 0 !important;
	right: 0 !important;
	transform: none !important;
}

/*------------- CSS Variables for Scaling/Subtitles -------------*/

@property --canvasScale {
	syntax: '<number>';
	initial-value: 1;
}

@property --c1 {
	syntax: '<color>';
	inherits: false;
	initial-value: rgba(0, 0, 0, 0.9);
}

@property --c2 {
	syntax: '<color>';
	inherits: false;
	initial-value: rgba(0, 0, 0, 0.7);
}

/*------------- Subtitle Styles -------------*/

#currentSubtitle {
	position: absolute;
	right: 0;
	bottom: -1%;
	left: 0;
	align-content: center;
	opacity: 1;
	z-index: 1000;
	animation-duration: 3s;
	animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
	animation-iteration-count: 1;
	animation-name: fadeInOpacity;
	margin-inline: auto;
	background: linear-gradient(to top, var(--c1) 0%, var(--c2) 50%, transparent 100%);
	background-size: 100% 100%;
	padding: calc(40px * var(--canvasScale)) 0 calc(20px * var(--canvasScale));
	width: 100%;
	pointer-events: none;
	color: #fff;
	font-weight: 900;
	font-size: calc((20pt * var(--subtitleScale)) * var(--canvasScale));
	font-family: 'Lato', sans-serif;
	text-align: center;
}

@keyframes fadeInOpacity {
	0% {
		--c1: rgba(0, 0, 0, 0);
		--c2: rgba(0, 0, 0, 0);
	}

	100% {
		--c1: rgba(0, 0, 0, 0.9);
		--c2: rgba(0, 0, 0, 0.7);
	}
}

.ml7 {
	position: relative;
	text-align: center;
}

.ml7 .text-wrapper {
	display: inline-block;
	position: relative;
	max-width: 85%;
}

.ml7 .words {
	display: inline-block;
}

.ml7 .word {
	display: inline-block;
	white-space: nowrap;
	/* Prevents word splitting */
}

.ml7 .letter {
	display: inline-block;
	opacity: 0;
}

/*------------- Video Styles -------------*/

video {
	mix-blend-mode: screen;
	object-fit: cover;
	width: 100vw;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	pointer-events: none;
}

/*------------- Boost Sizing on Post a Link Form -------------*/

div#observerInfoDialog {
	max-width: 640px !important;
	width: 100% !important;
}

div#observerInfoDialog form h1 {
	font-weight: 600 !important;
	font-size: clamp(24px, 4vw, 32px) !important;
}

div#observerInfoDialog form h1 br {
	display: none !important;
}

div#observerInfoDialog form h2 {
	font-size: clamp(20px, 4vw, 26px) !important;
	font-weight: 400 !important;
	margin: auto !important;
}

div#observerInfoDialog form div.field-row input:not([type='button']) {
	font-size: clamp(20px, 4vw, 26px) !important;
	font-weight: 400 !important;
}

div#observerInfoDialog #recipientInfoStart {
	font-weight: 800 !important;
	font-size: clamp(24px, 4vw, 32px) !important;
}

/*------------- Font Embedding -------------*/

/* Regular */

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-Regular.woff') format('woff');
}

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-Regular.woff') format('woff');
	font-weight: 400;
}

/* Hairline */

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-Hairline.woff') format('woff');
	font-weight: 100;
}

/* Light */

@font-face {
	font-family: 'Lato Light';
	src: url('../fonts/Lato-Light.woff') format('woff');
}

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-Light.woff') format('woff');
	font-weight: 300;
}

/* Light Italic */

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-LightItalic.woff') format('woff');
	font-weight: 300;
	font-style: italic;
}

/* Bold */

@font-face {
	font-family: 'LatoBold';
	src: url('../fonts/Lato-Bold.woff') format('woff');
}

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-Bold.woff') format('woff');
	font-weight: 700;
}

/* Black */

@font-face {
	font-family: 'LatoBlack';
	src: url('../fonts/Lato-Black.woff') format('woff');
}

@font-face {
	font-family: 'Lato';
	src: url('../fonts/Lato-Black.woff') format('woff');
	font-weight: 900;
}