:root {
  --primary-color: #86ea16;
  --background-color: #080808;
}
body {
	background-color: var(--background-color);
	color: var(--primary-color);
  font-family: "Roboto Mono", monospace;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  margin: 0;
  padding: 0;
  background-repeat: repeat-x;
}

img {
	max-width: 100%;
}

a {
	color: var(--primary-color);
}

button {
  background-color: #080808;
	color: #86ea16;
  border: 1px solid #86ea16;
  font-size: 16px;
    margin: 0;
    padding: 2px 8px;
}
button:disabled {
  opacity: 0.8;
  cursor: not-allowed;
}

.sidebar {
    width: 250px;
    min-height: calc(100% - 64px);
    border-right: 1px solid var(--primary-color);
    padding: 2rem 2rem;
    position: absolute;
    overflow: auto;
}

.post-list a {
	display: block;
	text-decoration: none;
}

.post-list a:before {
	content: "\00b7";
	margin-left: -12px;
	width: 14px;
	display: inline-block;
}

.title {
	font-size: 32px;
	font-weight: bold;
	letter-spacing: 4px;
	font-variant: small-caps;
}

.subtitle {
	margin-bottom: 24px;
	font-style: italic;
}
hr {
  border: none;
  border-top: 1px dashed var(--primary-color);
  margin: 24px 0;
}
.profile img {
	border: 1px solid var(--primary-color);
	display: inline;
	float: left;
	margin-bottom: 12px;
	margin-right: 6px;
}

.profile .profile-desc {
	display: inline;
}

.profile {
	border: 1px solid var(--primary-color);
	padding: 12px;
	border-top: 8px solid var(--primary-color);
	min-height: 60px;
}


.menu a {
	border: 1px solid var(--primary-color);
	text-decoration: none;
	padding: 4px;
	display: inline-block;
	margin-bottom: 6px;
}

.menu a:hover {
	font-weight: bold;
}

.sidebar a:hover {
	text-decoration: underline;
}

a.current {
  pointer-events: none;
  opacity: 0.8;
  cursor: not-allowed;
}

iframe {
	height: 100%;
	width: 100%;
	border: none;
}

.main {
    position: absolute;
    height: 100vh;
    width: calc(100% - 316px);
    margin-left: 316px;
    box-sizing: border-box;
    overflow-y: auto;
    overflow-x: hidden;
}

.page {
	padding: 24px;
	padding-right: 40vw;
}

html, body, .main, .sidebar {
    scrollbar-width: thin; 
}


h1 {
	font-variant: small-caps;
	border-bottom: 1px dashed;
}
fieldset {
  border: 1px dashed var(--primary-color);
  padding: 12px;
  margin: 24px 4px;
  display: flex;
  gap: 36px;
}
input[type="radio"] {
  background-color: var(--background-color);
  color: var(--primary-color);
  accent-color: var(--primary-color);
}
@view-transition {
  navigation: auto;
}

/* Create a custom animation */

@keyframes move-out {
  from {
    transform: rotateX(0deg) translateX(0%);
  }

  to {
    transform: rotateX(-90deg) translateX(-100%);
  }
}

@keyframes move-in {
  from {
    transform: rotateX(90deg) translateX(100%);
  }

  to {
    transform: rotateX(0deg) translateX(0%);
  }
}

/* Apply the custom animation to the old and new page states */

::view-transition-old(root) {
  animation: 300ms ease-in-out both move-out;
}

::view-transition-new(root) {
  animation: 300ms ease-in-out both move-in;
}

@keyframes slide-from-right {
  from { overflow: hidden; transform: translateX(100%); }
}
@keyframes slide-to-left {
  to { overflow: hidden; transform: translateX(-100%); }
}
@keyframes slide-from-top {
  from { overflow: hidden; transform: translateY(-100%); }
}
.htmx-added.slide-in {
  transform: translateX(100%);
}
.slide-in {
  view-transition-name: slide-in;
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes grow-in {
  from { scale: 0 0; }
  to { scale: 1 1; }
}
.htmx-added.grow-in {
  scale: 0 0;
}
.grow-in {
  view-transition-name: grow-in;
  transition: all 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* <span class="type"><span>You called Steve</span></span> */
@keyframes t {
  90%,100% {
    width:100%
  }
}
.type {
  display:inline-flex;
}
.type span {
  word-break: break-all;
  height: 1.2em;
  width: 0%;
  overflow: hidden;
  animation:t 2s linear 1 forwards;
}
.type span:before {
  content:" ";
  display: inline-block;
}