html, :root, *, *::after, *::before {
	box-sizing: border-box;
}

button, a, input, select {
	cursor: pointer;
}

*:disabled {
	cursor: default;
}

/* Preferred Default Font */
@font-face {
  font-family: 'atkinson-hyper-legible';
  src: url(f9fbbe2dd57bb8068f6b.woff2) format('woff2'),
       url(3d6b4b54bd6aab1f7346.woff) format('woff');
  font-weight: normal;
  font-style: normal;
}

:root {
  font-size: 20px;
	font-family: 
		'atkinson-hyper-legible',
		system-ui,
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
		tab-size: 4;
		line-height: 1.15;
		letter-spacing: .12em; 
		-webkit-text-size-adjust: 100%;
		cursor: default;
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
}


/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
	height: 0; /* 1 */
	color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/
/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr[title] {
	text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/
b,
strong {
	font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
	font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/
small {
	font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}

/*
Tabular data
============
*/
/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
	text-indent: 0; /* 1 */
	border-color: inherit; /* 2 */
}

/*
Forms
=====
*/
/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}
/**
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
	text-transform: none;
}
/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type='button'],
[type='reset'],
[type='submit'] {
	appearance: button;
}
/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
	border-style: none;
	padding: 0;
}
/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
	outline: 1px dotted ButtonText;
}
/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
	box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
	padding: 0;
}
/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
	vertical-align: baseline;
}
/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}
/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
	appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}
/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
	-webkit-appearance: none;
}
/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}
/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
	display: list-item;
}
@font-face {
  font-family: 'bebas-neue';
  src: url(214ded011fc7a433ed4f.woff2) format('woff2'),
    url(6f334af9736cb494e062.woff) format('woff');
  font-weight: normal;
  font-style: normal;
}
:root {
  --ocean-blue: #0077be;
  --battleship-gray: #607d8b;
  --radar-green: #4caf50;
  --text-white: #ffffff;
  --navy-background: #001f3f;
  --miss: #d3d3d3;
  --hit: #ff3333;
  --own-ship-hit: #b32400;
  --unplaced-ship: #daa520;

  --color-yellow-orange: #daa520;
  --color-vibrant-green: #4caf50;
  --color-deep-navy-blue: #001f3f;
  --color-bright-red: #ff3333;
  --color-deep-orange-red: #b32400;
  --color-vibrant-blue: #0077be;
  --color-steel-blue: #607d8b;
  --color-light-gray: #d3d3d3;

  --grid-cell-width: 2.5em;
  --grid-cell-height: 2.5em;

  --color-text-primary: white;
  --color-text-secondary: black;

  --color-border-primary: white;
  --color-border-secondary: black;
  --font-size-xxl: 3rem;
  --font-size-xl: 2rem;
  --font-size-l: 1.5rem;
  --font-size-m: 1.25rem;
  --font-weight-bold: 700;
  --border-standard: 2px solid;
  --border-radius-standard: 10px;

  --gap-small: 0.25em;
  --gap-standard: 0.5em;
  --gap-large: 1em;

  --border-white: 3px solid white;
  --border-navy: 3px solid var(--color-deep-navy-blue);
  --border-green: 3px solid var(--color-vibrant-green);

  --font-header: 'bebas-neue';
}
input[type='text'] {
  cursor: text;
}

.color-white {
  color: var(--text-white);
}
.color-navy {
  color: var(--navy-background);
}

.hide {
  display: none;
}
.ship {
  color: var(--battleship-gray);
}

.medium {
  background-color: var(--unplaced-ship);
  color: black;
}
.hard {
  background-color: var(--hit);
  color: black;
}
.easy {
  background-color: var(--radar-green);
  color: black;
}

.base-header {
  font-family: 'bebas-neue';
  font-weight: 700;
  font-size: 2rem;
}
.base-button {
  height: 2.25em;
  border: var(--border-white);
  background-color: var(--color-vibrant-blue);
  color: var(--color-text-primary);
  font-weight: bold;
  padding: 0.5em;
  border-radius: 10px;
}

.base-button.active,
.base-button:hover {
  border-color: black;
  background-color: var(--radar-green);
  color: var(--color-deep-navy-blue);
}

.ai-display-header {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 10px;
}
.ai-display-header > p {
  color: #ff3333;
  font-size: 1.15rem;
}

/* Utility Bar */
/*#region*/

.utility-bar {
  background-color: var(--ocean-blue);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.25em;
}
.utility-bar .title {
  font-family: var(--font-header);
  font-weight: var(--font-weight-bold);
  font-size: 3.5em;
  letter-spacing: 0.1rem;
}

.utility-bar-buttons {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
}
/*#endregion*/

body {
  background-color: var(--navy-background);
  color: var(--text-white);
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  min-height: 100vh;
  margin: 0;
}

main {
  padding: 0.5em;
  flex: 1;
}

/* Footer */
/*#region*/
footer {
  grid-column: 1/-1;
  background-color: var(--ocean-blue);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 1.5rem;
  padding: 5px;
}
footer a {
  display: flex;
  justify-content: center;
  width: 2em;
  fill: var(--navy-background);
  border-radius: 100%;
}
.github-logo-icon:hover {
  fill: var(--radar-green);
  border-radius: 100px;
  box-shadow: 0px 0px 5px 3px var(--radar-green);
}
/* #endregion */

@media (max-width: 1200px) {
  :root {
    --grid-cell-width: 2em;
    --grid-cell-height: 2em;
  }
  .board {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}

.grid-wrapper {
  display: flex;
  height: fit-content;
  gap: 1em;
}
.grid-header {
  display: flex;
  justify-content: center;
  padding-bottom: 0.5em;
}

.grid-header > p {
  font-weight: bold;
  font-size: 1.25rem;
  border-bottom: var(--border-white);
}
.grid-cell {
  width: var(--grid-cell-height);
  height: var(--grid-cell-width);
  background-color: var(--color-vibrant-blue);
  border: 1px solid var(--text-white);
  display: flex;
  justify-content: center;
  align-items: center;
  color: black;
  font-size: 1em;
  font-weight: bolder;
}

.tracking-grid > .board-row > .grid-cell[data-cell-status='unexplored']:hover {
  background-color: var(--color-vibrant-green);
}
.tracking-grid > .board-row > .grid-cell[data-cell-status='unexplored']:disabled:hover {
  background-color: var(--color-vibrant-blue);
}

.tracking-grid > .board-row > :disabled.grid-cell[data-cell-status='miss'],
.tracking-grid > .board-row > .grid-cell[data-cell-status='miss'] {
  background-color: var(--color-light-gray);
}

.tracking-grid > .board-row > button:disabled.grid-cell[data-cell-status='ship_sunk'],
.tracking-grid > .board-row > .grid-cell[data-cell-status='ship_sunk'],
.tracking-grid > .board-row > button:disabled.grid-cell[data-cell-status='hit'],
.tracking-grid > .board-row > .grid-cell[data-cell-status='hit'] {
  background-color: var(--color-bright-red);
}

.tracking-fleet,
.main-fleet {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: baseline;
  min-width: fit-content;
  gap: 0.3em;
}
.tracking-fleet-header,
.main-fleet-header {
  text-align: center;
  font-size: 1.25rem;
  font-weight: bold;
  border-bottom: 2px solid var(--text-white);
  width: 100%;
}
.main-fleet-ship-list {
  width: 100%;
}

button.ship-element[data-placed='false'] {
  color: var(--color-yellow-orange);
}
button.ship-element[data-placed='false'].ship-selected,
button.ship-element[data-placed='false']:hover {
  color: var(--color-vibrant-green);
  border-bottom: var(--border-white);
}
button.ship-element[data-placed='true'] {
  color: var(--color-vibrant-green);
}
button.ship-element[data-placed='true']:hover {
  color: var(--color-bright-red);
  border-bottom: 2px solid var(--text-white);
}

button:disabled.ship-element[data-sunk='false'][data-placed='true']:hover {
  color: var(--color-vibrant-green);
  border: none;
}
button:disabled.ship-element[data-sunk='true'][data-placed='true']:hover {
  color: var(--color-deep-orange-red);
  border: none;
}

button:disabled.ship-element[data-sunk='true'][data-placed='true'] {
  color: var(--color-deep-orange-red);
  text-decoration: line-through;
}
div.ship-element[data-sunk='false'] {
  color: var(--color-vibrant-green);
}
div.ship-element[data-sunk='true'] {
  color: var(--color-bright-red);
  text-decoration: line-through;
}

.ship-element {
  background-color: var(--color-deep-navy-blue);
  border: none;
  display: flex;
  justify-content: space-between;
  padding: 0;
  gap: 1em;
  font-size: 1.25rem;
  width: 100%;
}

.main-grid > .board-row > .grid-cell.valid-placement {
  background-color: var(--color-steel-blue);
  border-color: var(--color-yellow-orange);
}
.main-grid > .board-row > .grid-cell.placed-ship {
  background-color: var(--color-steel-blue);
  border-color: var(--color-vibrant-green);
}
.main-grid > .board-row > .grid-cell.invalid-placement {
  background-color: var(--color-bright-red);
}
.main-grid > .board-row > .grid-cell.main-grid-hit-marker {
  background-color: var(--color-deep-orange-red);
}
.submit-ships-placement-button:disabled:hover,
.submit-ships-placement-button:disabled {
  background-color: gray;
  color: #e2e1e1;
  border: none;
}

.player-name-display {
  text-align: center;
  font-size: 3em;
  font-weight: bold;
}

.board {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1.5em;
}
.board-row {
  display: flex;
  align-items: center;
  justify-content: center;
}

.board-col-labels {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.board-col-label {
  width: var(--grid-cell-width);
  text-align: center;
  font-weight: bolder;
}
.board-row-label {
  text-align: center;
  font-weight: bolder;
  width: 1rem;
  height: 1rem;
  padding-right: 0.25em;
}
.tracking-grid-utility-container,
.main-grid-utility-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.75em;
}

.board-buttons-container {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
}
.board-buttons-container > div > button {
  flex: 1;
  width: 100%;
  height: fit-content;
}

.end-turn-button:disabled,
.end-turn-button:disabled:hover {
  background-color: gray;
  color: #e2e1e1;
  border-color: gray;
}

.ai-vs-ai-display {
  display: flex;
  flex-direction: column;
  gap: 2em;
}
.ai-board {
  display: flex;
  justify-content: center;
  gap: 1em;
}

.dialog[open] {
  background-color: var(--color-deep-navy-blue);
  color: var(--text-white);
  display: flex;
  flex-direction: column;
  gap: var(--gap-standard);
  border-radius: var(--border-radius-standard);
  width: 50vw;
  min-width: fit-content;
}
.dialog[open]::backdrop {
  background-color: rgba(0, 9, 17, 0.9);
}

.dialog-title,
.dialog-header-primary,
.dialog-header-secondary {
  font-weight: var(--font-weight-bold);
  font-family: var(--font-header);
}

.dialog-title {
  font-size: var(--font-size-xxl);
  text-align: center;
}
.dialog-header-primary {
  font-size: var(--font-size-xl);
  text-align: center;
}

.dialog-header-secondary {
  font-size: var(--font-size-l);
  margin-bottom: 0.25em;
}

.white-underline {
  color: var(--text-white);
  border-bottom: var(--border-white);
}
.green-underline {
  color: var(--color-vibrant-green);
  border-bottom: var(--border-green);
}
.instructions-header-wrapper {
  display: flex;
  justify-content: space-between;
}

.instructions-button-container {
  display: flex;
  gap: var(--gap-small);
}

.instructions-button-container > button {
  flex: 1;
}

.instructions-content-container {
  display: flex;
  flex-direction: column;
  padding-left: 2em;
  padding-right: 2em;
  gap: var(--gap-standard);
}

.instruction-list-item {
  color: var(--color-vibrant-green);
  font-weight: var(--font-weight-bold);
}

.alternate-player-dialog[open]::backdrop {
  background-color: black;
}

.settings-dialog-header-wrapper {
  display: flex;
  justify-content: space-between;
  gap: 1em;
}
.settings-instructions-button {
  flex: 0.75;
  height: 100%;
}

.board-settings-title,
.player-one-settings-title,
.player-two-settings-title {
  text-align: center;
  font-size: 1.25rem;
  font-weight: bold;
  border-bottom: 2px solid var(--text-white);
  margin-bottom: 0.5rem;
}
.player-information-input-container {
  display: flex;
  gap: 0.5em;
}
.player-information-container {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  width: 100%;
}
.player-information-container > input,
.player-information-container > select {
  width: 100%;
  height: 100%;
  padding: 0.25em;
  font-weight: bold;
}
.attack-delay-input-wrapper {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}
.attack-delay-input-wrapper > input {
  text-align: center;
  max-width: 150px;
}
.attack-delay-input-wrapper > .attack-delay-label {
  font-weight: bold;
}
.board-settings-container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.board-settings-inputs-container {
  display: flex;
  gap: 0.25em;
  justify-content: center;
}
.rows-input-wrapper,
.cols-input-wrapper,
.letter-axis-input-wrapper {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  font-weight: bold;
}
.rows-input-wrapper > input,
.cols-input-wrapper > input {
  min-width: 55px;
}
.letter-axis-input-wrapper > select {
  min-width: 125px;
  height: 100%;
  text-align: center;
}

.dialog-buttons-container {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
}

.settings-submit-disclaimer {
  font-weight: bold;
  font-size: 1.15rem;
  font-style: italic;
}

.game-over-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
}
.game-over-dialog-header-message-wrapper {
  font-size: 1.5rem;
  font-weight: bold;
}

.game-over-button-container {
  display: flex;
  justify-content: space-between;
  gap: var(--gap-small);
}
.game-over-button-container > button {
  flex: 1;
}


/*# sourceMappingURL=app.9a8dde6046ce38bf181d.css.map*/