@font-face {
	font-family: "HelveticaNeue";
	src: url("HelveticaNeue-Light.woff2") format("woff2");
	font-weight: 300; /* light */
	font-style: normal;
	font-display: swap;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: hidden;
  background: #222;
  font-family: "HelveticaNeue", Helvetica, Arial, sans-serif;
	font-weight: 300; /* default to light */
}

/* Three.js canvas */
#bg {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  display: block;
  pointer-events: none; /* critical for form usability */
}

.login-card {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 10;
}

.login-panel {
  display: grid;
  gap: 0.75rem;

  padding: 1.3rem;
  border-radius: 6px;

  background: rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
}

.login-panel h1 {
  margin: 0 0 0.5rem;
  font-weight: 500;
  text-align: center;
}

.login-panel input,
.login-panel button {
  min-width: 260px;
  padding: 0.6rem 0.75rem;
  border-radius: 3px;
  border: none;
  font-size: 0.8rem;
  font-family: "HelveticaNeue", Helvetica, Arial, sans-serif;
	font-weight: 300; /* default to light */
}

.login-panel input {
  background: rgba(156, 218, 236, 0.2);
  color: #fff;
  outline: none;          /* no focus outline */
  box-shadow: none;       /* avoid UA focus ring */
}

.login-panel input:focus {
  outline: none;
  box-shadow: none;
}

.login-panel input::placeholder {
  color: #ccc;
}

.login-panel button {
  background: rgba(156, 218, 236, 0.2);
  color: #ccc;
  cursor: pointer;

  /* subtle rollover + rollout transition */
  transition: all 0.8s ease;
}

.login-panel button:hover {
  background: #56886b;
  color: #e6e6e6;
  transition: none
}

.login-panel button:active {
  transform: translateY(1px);
}

/* keep keyboard usability without ugly outline */
.login-panel button:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.25);
  outline-offset: 2px;
}

/* Top-left brand/contact */
.topbar {
	position: fixed;
	top: 14px;
	left: 14px;
	z-index: 20;

	display: flex;
	align-items: center;
	gap: 10px;

	padding: 8px 10px;
	border-radius: 10px;

	background: rgba(0, 0, 0, 0.12);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);

	border: 1px solid rgba(156, 218, 236, 0.18);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.topbar-logo {
	width: 26px;
	height: 26px;
	display: block;
	opacity: 0.95;
	filter: drop-shadow(0 0 10px rgba(156, 218, 236, 0.15));
}

.topbar-contact {
	display: grid;
	gap: 4px;
}

.topbar-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;

	font-size: 0.78rem;
	letter-spacing: 0.02em;
	color: rgba(156, 218, 236, 0.95);
	text-decoration: none;

	transition: transform 180ms ease, opacity 180ms ease, color 180ms ease;
}

.topbar-link:hover {
	color: rgba(156, 218, 236, 1);
	transform: translateX(1px);
}

.topbar-link:active {
	transform: translateX(1px) translateY(1px);
}

.topbar-link:focus-visible {
	outline: 2px solid rgba(156, 218, 236, 0.35);
	outline-offset: 3px;
	border-radius: 6px;
}

.topbar-ico {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	opacity: 0.9;
}