:root {
    --page-inner-padding: 30px;
    --page-inner-max-width: 800px;
    /* Mirrors .page-inner's max-width + margin:auto + padding left edge */
    --page-inner-left: max(var(--page-inner-padding), calc((100% - var(--page-inner-max-width)) / 2 + var(--page-inner-padding)));
}

.logo {
   position: relative;
   top: 5px; 
   left: 5px;
}

.alasa {
   position: relative;
   top: 5px; 
   left: 5px;
}
.alasa-form {
   position: relative;
}
 
.book-body {
    overflow-y: scroll;
}

.book-body .book-header {
    position: fixed;
    width: 100%;
}

.book.with-summary .book-body .book-header {
    position: relative;
    width: 100%;
}

.book-body .body-inner {
    /* position: absolute; */
    margin-top: 50px;
    min-height: calc(100% - 50px);
}

@media (max-width: 1240px) {
    .book-body .body-inner {
        position: absolute;
        margin-top: 50px;
        min-height: calc(100% - 50px)
    }
}

.book-body .body-inner .page-wrapper {
    min-height: calc(100% - 46px);
}

.book-body .body-inner .page-wrapper .page-inner {
    padding-bottom: 100px;
}

@media (max-width: 1240px) {
    .book.with-summary .book-body .book-header {
        overflow-x: hidden;
        overflow-y: hidden;
    }
}

.img-caption {
    font-weight: 200;
    font-size: 0.8em;
}

.img-figure {
	display: block; 
	margin-left: auto;
	margin-right: auto;
	width: 50%;
    padding: 5px;
}

/* Search input text colour — search-pro plugin sets #book-search-input background
   to #333333, so the inherited dark sidebar text colour is invisible. */
#book-search-input input,
#book-search-input input:focus,
#book-search-input input:hover {
    color: #f6f6f6;
}

.book .book-body .book-header {
	background-image: linear-gradient(90deg, #99E2FF, #F6F6F6, #FF99B3)
}

.book.color-theme-1 .book-body .book-header {
	background-image: linear-gradient(90deg, #99E2FF, #F6F6F6, #FF99B3)
}

.book.color-theme-2 .book-body .book-header {
	background-image: linear-gradient(90deg, #FF99B3, #F6F6F6, #99E2FF)
}

.page-inner {
    max-width: 800px;
}

.back-to-top {
    right: calc((100% - 300px - min(100% - 300px, 800px)) / 2 + 25px);
}

/* Style for search page on mobile screens */

#book-search-input-link {
    padding: 6px;
    background: #333333;
    background: inherit;
    transition: top .5s ease;
    border-bottom: 1px solid rgba(0,0,0,.07);
    border-top: 1px solid rgba(0,0,0,.07);
    margin-bottom: 10px;
    margin-top: -1px;
}

#book-search-input-link a {
    width: 100%;
    border: 1px solid transparent;
    box-shadow: none;
    outline: 0;
    line-height: 38px;
    padding: 7px 7px;
    color: #757575;
}

#book-search-input {
    display: block;
}
#book-search-input-link {
    background: #333333;
    display: none;
}

@media (max-width: 1240px) {
    #book-search-input {
        display: none;
    }
    #book-search-input-link {
        display: block;
    }
}

#book-search-input-inside {
    padding: 6px;
    background: inherit;
    transition: top .5s ease;
    border-bottom: 1px solid rgba(0,0,0,.07);
    border-top: 1px solid rgba(0,0,0,.07);
    margin-bottom: 10px;
    margin-top: -1px;
}

#book-search-input-inside input {
    width: 80%;
    font-family: 'IBM Plex Sans', sans-serif;
    border: 1px solid transparent;
    box-shadow: none;
    outline: 0;
    line-height: 22px;
    padding: 7px 7px;
}

/* Render wide tables */

.table-wrapper {
    overflow-x: scroll;
}

/* Tips, warnings, and dangers */

.markdown-section blockquote.block-tip {
    border-color: #009245 !important;
    background-color: #9ddbba;
    color: #333333 !important;
    padding: 10px;
}

.markdown-section blockquote.block-tip h1,
.markdown-section blockquote.block-tip h2,
.markdown-section blockquote.block-tip h3,
.markdown-section blockquote.block-tip h4,
.markdown-section blockquote.block-tip h5,
.markdown-section blockquote.block-tip h6 {
    color: #333333 !important;
    margin: 0px;
    margin-bottom: 5px;
}

.markdown-section blockquote.block-tip p {
    margin-bottom: 0px;
}

.markdown-section blockquote.block-warning {
    border-color: #ffc733 !important;
    background-color: #d9d5c9;
    color: #333333 !important;
    padding: 10px;
}

.markdown-section blockquote.block-warning h1,
.markdown-section blockquote.block-warning h2,
.markdown-section blockquote.block-warning h3,
.markdown-section blockquote.block-warning h4,
.markdown-section blockquote.block-warning h5,
.markdown-section blockquote.block-warning h6 {
    color: #333333 !important;
    margin: 0px;
    margin-bottom: 5px;
}

.markdown-section blockquote.block-warning p {
    margin-bottom: 0px;
}

.markdown-section blockquote.block-danger {
    border-color: #d4145a !important;
    background-color: #d99eb4;
    color: #333333 !important;
    padding: 10px;
}

.markdown-section blockquote.block-danger h1,
.markdown-section blockquote.block-danger h2,
.markdown-section blockquote.block-danger h3,
.markdown-section blockquote.block-danger h4,
.markdown-section blockquote.block-danger h5,
.markdown-section blockquote.block-danger h6 {
    color: #333333 !important;
    margin: 0px;
    margin-bottom: 5px;
}

.markdown-section blockquote.block-danger p {
    margin-bottom: 0px;
}

pre:has(code.language-mermaid[data-processed="true"]) {
    background-color: #ffffff;
    text-align: center;
}

.toggle-btn btn-light active {
	color: #f6f6f6;
}

.toggle-btn btn-light {
	color: #f6f6f6;
}
/*LH-motif*/

.lighthouse-viewport {
  width: 100%;
  height: 50vh;
}
	
.lh-img {
    position: absolute;
    bottom: 0;
    z-index: 10;
    object-fit: contain;
    object-position: right bottom;
}
.lh-stars {
	position: relative;
    bottom: -2%;
	right: -40%;
    z-index: 0;
    object-position: right bottom;
}
.cloudPane {
    position: relative;
    width: 100%;
    height: 50vh;
    overflow: hidden;
    margin: 0 auto;
}

.ack-lighthouse-viewport {
  width: 100%;
  height: 300px;
}

.ack-cloudPane {
    position: relative;
    width: 100%;
    height: 300px;
    overflow: hidden;
    margin: 0 auto;
}

.cloudPane, .ack-cloudPane {
    /* border-color: rgba(0,0,0,.3);
    border-width: 2px;
    border-style: solid; */
    background: -webkit-radial-gradient(circle at 120% 120%,#fff6d5, #c5b778, #264653, #333333)
    background: -moz-radial-gradient(circle at 120% 120%,#fff6d5, #c5b778, #264653, #333333));
    background: radial-gradient(circle at 120% 120%,#fff6d5, #c5b778, #264653, #333333);
}

/*cloud position*/
 #cloud1 {
    opacity: .9;
    top:50px;
    left: 120%;
    -webkit-transform: scale(1.2);
    -moz-transform: scale(1.2);
    transform: scale(1.2);
    -moz-animation: drift 120s;
    -moz-animation-timing-function: linear;
    -moz-animation-iteration-count: infinite;
    -moz-animation-delay: 8s;
    -webkit-animation: drift 120s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-delay: 8s;
    animation: drift 120s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-delay: 8s;
    z-index:2;
}

#cloud2 {
    opacity: .8;
    top:40px;
    left: 120%;
    -webkit-transform: scale(.7);
    -moz-transform: scale(.7);
    transform: scale(.7);
    -moz-animation: drift 50s;
    -moz-animation-timing-function: linear;
    -moz-animation-iteration-count: infinite;
    -webkit-animation: drift 50s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation: drift 50s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    z-index: 1;
}
#cloud3 {
    opacity: 0;
    top:20px;
    left: 50%;
    -webkit-transform: scale(.35);
    -moz-transform: scale(.35);
    transform: scale(.35);
    -moz-animation: driftBg 70s;
    -moz-animation-timing-function: linear;
    -webkit-animation: driftBg 70s;
    -webkit-animation-timing-function: linear;
    animation: driftBg 70s;
    animation-timing-function: linear;
    z-index: 0;
}
#cloud4 {
    opacity: 0;
    top:50px;
    left: 20%;
    -webkit-transform: scale(.40, .45);
    -moz-transform: scale(.40, .45);
    transform: scale(.40, .45);
    -moz-animation: driftBg2 60s;
    -moz-animation-timing-function: linear;
    -webkit-animation: driftBg2 60s;
    -webkit-animation-timing-function: linear;
    animation: driftBg2 60s;
    animation-timing-function: linear;
    z-index: 0;
}
#cloud5 {
    opacity: 0;
    top:220px;
    left: 90%;
    -webkit-transform: scale(.40);
    -moz-transform: scale(.40);
    transform: scale(.40);
    -moz-animation: driftBg3 90s;
    -moz-animation-timing-function: linear;
    -webkit-animation: driftBg3 90s;
    -webkit-animation-timing-function: linear;
    animation: driftBg3 90s;
    animation-timing-function: linear;
    z-index: 0;
}
#cloud6 {
    opacity: .7;
    top:60px;
    left: 120%;
    -webkit-transform: scale(.40);
    -moz-transform: scale(.40);
    transform: scale(.40);
    -moz-animation: drift 110s;
    -moz-animation-timing-function: linear;
    -mox-animation-iteration-count: infinite;
    -moz-animation-delay: 11s;
    -webkit-animation: drift 110s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-delay: 11;
    animation: drift 110s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-delay: 11;
    z-index: 0;
}
#cloud7 {
    opacity: .8;
    top:95px;
    left: 120%;
    -webkit-transform: scale(.7);
    -moz-transform: scale(.7);
    transform: scale(.7);
    -moz-animation: drift 45s;
    -moz-animation-timing-function: linear;
    -mox-animation-iteration-count: infinite;
    -moz-animation-delay: 35s;
    -webkit-animation: drift 45s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-delay: 35s;
    animation: drift 45s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-delay: 35s;
    z-index: 1;
}
/*individual circle position*/
 #circ1 {
    z-index: 1;
}
#circ2 {
    top: 50px;
    left: -40px;
}
#circ3 {
    top: 50px;
    left: -120px;
}
#circ4 {
    top: 30px;
    left: -60px;
}
#circ5 {
    top: 100px;
    left: -150px;
}
#circ6 {
    top: 100px;
    left: 130px;
}

#circ1shadow, #circ2shadow, #circ3shadow, #circ5shadow, #circ6shadow {
    background-repeat: no-repeat;
    position: absolute;
    z-index:2;
    -webkit-transform: scale(.9, -.9);
    -mox-transform: scale(.9, -.9);
    transform: scale(.9, -.9);

}
#circ1shadow {
    background: -webkit-radial-gradient(48% 64%, circle, rgba(204, 0, 0, 0) 110px, #9BBBC4 50px);
    background: -moz-radial-gradient(48% 64%, circle, rgba(204, 0, 0, 0) 110px, #9BBBC4 50px);
    background: radial-gradient(48% 64%, circle, rgba(204, 0, 0, 0) 110px, #9BBBC4 50px);
    top: 2px;
    z-index:3;
}
#circ2shadow {
    background: -webkit-radial-gradient(58% 61%, circle, rgba(204, 0, 0, 0) 82px, #9BBBC4 50px);
    background: -moz-radial-gradient(58% 61%, circle, rgba(204, 0, 0, 0) 82px, #9BBBC4 50px);
    background: radial-gradient(58% 61%, circle, rgba(204, 0, 0, 0) 82px, #9BBBC4 50px);
    top: 0px;
}
#circ3shadow {
    background: -webkit-radial-gradient(54% 60%, circle, rgba(204, 0, 0, 0) 80px, #9BBBC4 50px);
    background: -moz-radial-gradient(54% 60%, circle, rgba(204, 0, 0, 0) 80px, #9BBBC4 50px);
    background: radial-gradient(54% 60%, circle, rgba(204, 0, 0, 0) 80px, #9BBBC4 50px);
    top: 8px;
    -webkit-transform: scale(.8, -.8);
    -moz-transform: scale(.8, -.8);
    transform: scale(.8, -.8);
}
#circ5shadow {
    background: -webkit-radial-gradient(57% 61%, circle, rgba(204, 0, 0, 0) 53px, #9BBBC4 40px);
    background: -moz-radial-gradient(57% 61%, circle, rgba(204, 0, 0, 0) 53px, #9BBBC4 40px);
    background: radial-gradient(57% 61%, circle, rgba(204, 0, 0, 0) 53px, #9BBBC4 40px);
    top: 0px;
}
#circ6shadow {
    background: -webkit-radial-gradient(44% 65%, circle, rgba(204, 0, 0, 0) 53px, #9BBBC4 40px);
    background: -moz-radial-gradient(44% 65%, circle, rgba(204, 0, 0, 0) 53px, #9BBBC4 40px);
    background: radial-gradient(44% 65%, circle, rgba(204, 0, 0, 0) 53px, #9BBBC4 40px);
    top: 0px;
}
/*style the clouds*/
 .bigCloud {
    box-shadow: 10px 10px 5px 20px black inset;
    position: absolute;
}
/*style circles that make up clouds*/
 .smallCircle {
    height: 100px;
    width: 100px;
    background: white;
    border-radius: 100%;
    position: absolute;
}
.middleCircle {
    height: 150px;
    width: 150px;
    background: white;
    border-radius: 100%;
    position: absolute;
}
.largeCircle {
    height: 200px;
    width: 200px;
    background: white;
    border-radius: 100%;
    position: absolute;
}

@-webkit-keyframes drift {
    from {
        left: 120%;
    }
    to {
        left: -25%;
    }
}
@-moz-keyframes drift {
    from {
        left: 120%;
    }
    to {
        left: -25%;
    }
}
@keyframes drift {
    from {
        left: 120%;
    }
    to {
        left: -25%;
    }
}
@-webkit-keyframes driftBg {
    0% {
        left: 50%;
        opacity: 0
    }
    3% {
        left: 48%;
        opacity: .7
    }
    100% {
        left: -25%;
        opacity: .7;
    }
}
@-moz-keyframes driftBg {
    0% {
        left: 50%;
        opacity: 0
    }
    3% {
        left: 48%;
        opacity: .7
    }
    100% {
        left: -25%;
        opacity: .7;
    }
}
@keyframes driftBg {
    0% {
        left: 50%;
        opacity: 0
    }
    3% {
        left: 48%;
        opacity: .7
    }
    100% {
        left: -25%;
        opacity: .7;
    }
}
@-webkit-keyframes driftBg2 {
    0% {
        left: 20%;
        opacity: 0
    }
    3% {
        left: 19%;
        opacity: .7
    }
    100% {
        left: -25%;
        opacity: .7;
    }
}
@-moz-keyframes driftBg2 {
    0% {
        left: 20%;
        opacity: 0
    }
    3% {
        left: 19%;
        opacity: .7
    }
    100% {
        left: -25%;
        opacity: .7;
    }
}
@keyframes driftBg2 {
    0% {
        left: 20%;
        opacity: 0
    }
    3% {
        left: 19%;
        opacity: .7
    }
    100% {
        left: -25%;
        opacity: .7;
    }
}
@-webkit-keyframes driftBg3 {
    0% {
        left: 90%;
        opacity: 0
    }
    2% {
        left: 88%;
        opacity: .65
    }
    100% {
        left: -25%;
        opacity: .65;
    }
}
@-moz-keyframes driftBg3 {
    0% {
        left: 90%;
        opacity: 0
    }
    2% {
        left: 88%;
        opacity: .65
    }
    100% {
        left: -25%;
        opacity: .65;
    }
}
@keyframes driftBg3 {
    0% {
        left: 90%;
        opacity: 0
    }
    2% {
        left: 88%;
        opacity: .65
    }
    100% {
        left: -25%;
        opacity: .65;
    }
}
.index-subheading {
    font-family: 'IBM Plex Sans' !important;
    font-size: 2.5vh;
    font-style: italic;
	max-width: 80%;
    color: rgb(0 0 0);
    position: absolute;
    left: var(--page-inner-left);
    top: 0;
    z-index:0;
}
.index-heading {
    font-family: 'Story Script' !important;
    font-size: 6.5vh;
    line-height: 5.5vh;
    font-style: normal;
	max-width: 80%;
	color: rgb(0 0 0);
    position: absolute;
    left: var(--page-inner-left);
    top: 1vw;
    z-index:0;
}

.index-subheading-front {
    font-family: 'IBM Plex Sans' !important;
    font-size: 2.5vh;
    font-style: italic;
    max-width: 80%;
    color: rgb(246 246 246);
    mix-blend-mode: difference;
    position: absolute;
    left: var(--page-inner-left);
    top: 0;
    z-index:10;
}

.index-heading-front {
    font-family: 'Story Script' !important;
    font-size: 6.5vh;
    line-height: 5.5vh;
    font-style: normal;
    max-width: 80%;
    color: rgb(246 246 246);
    mix-blend-mode: difference;
    position: absolute;
    left: var(--page-inner-left);
    top: 1vw;
    z-index:10;
}

.ack-heading {
    font-family: 'Story Script' !important;
    font-size: 50px;
    line-height: 45px;
    font-style: normal;
	max-width: 90%;
	color: rgb(0 0 0);
    position: absolute;
    left: 2vw;
    top: 2vw;
    z-index:0;
}

.ack-heading-front {
    font-family: 'Story Script' !important;
    font-size: 50px;
    line-height: 45px;
    font-style: normal;
    max-width: 90%;
    color: rgb(246 246 246);
    mix-blend-mode: difference;
    position: absolute;
    left: 2vw;
    top: 2vw;
    z-index:10;
}

/* starfield on post.html */ 

.starfield {
	height: 40vh;
	width: 100%;
	position: relative;
	overflow: hidden;
	background: radial-gradient(circle at 60% 130%, #fff6d5, #c5bf9f, #264563, #2d3c42, #333333);
}

.starfield-img {
	position: absolute;
    bottom: -1px;
    z-index: 10;
    object-fit: cover;
    object-position: bottom center;
}

.starfield-light {
  &:after, &:before {
    content: "";
    display: block;
    position: absolute;
  }
  &:before {
    width: 120%;
    height: 120%;
    top: 40%;
    left: -25%;
    background: radial-gradient(48.58% 48.58% at 49.96% 59.07%, #2d3c42 0%, rgba(28, 38, 41, 0.4) 43.23%, rgba(20, 26, 29, 0) 100%);
  }
  &:after {
    width: 120%;
    height: 100%;
    top: 65%;
    left: 25%;
    background: radial-gradient(48.58% 48.58% at 49.96% 59.07%, #29424c 0%, rgba(33, 53, 62, 0.45) 38.02%, rgba(21, 34, 39, 0) 100%);
  }
}

.star1 {
  animation: 4s linear 1s infinite alternate twinkle;
}

.star2 {
  animation: 3s linear 0s infinite alternate twinkle;
}

.star3 {
  animation: 4.5s linear 0.5s infinite alternate twinkle;
}

.star4 {
  animation: 2.25s linear 1.5s infinite alternate twinkle;
}

.star5 {
  animation: 5s linear 2s infinite alternate twinkle;
}

.star6 {
  animation: 3.5s linear 1s infinite alternate twinkle;
}

@keyframes twinkle {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* ===== Box breathing theming ===== */ 

@keyframes box-breath {
  0%, 75%, 100% {
    transform: scale(.3);
  }
  25%, 50% {
    transform: scale(1);
  }
}

.box-breathing {
  position: relative;   /* stays in flow; anchors ::after */
  width: 25vmin;
  height: 25vmin;
  margin: 100px auto;       /* centres the block horizontally */
  border-radius: 50%;
  border: 5px solid #555555;
}

.box-breathing::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22vmin;
  height: 22vmin;
  margin-top: -11vmin;  /* centres ::after within .box-breathing */
  margin-left: -11vmin;
  border-radius: 50%;
  background: #ff99b3;
  will-change: transform;
  animation: box-breath 16s infinite;
}

/* ===== Search results theming ===== */

/* Match site typography */
#book-search-results .search-results-title {
    font-family: 'IBM Plex Sans', sans-serif;
    text-transform: none;
    font-weight: 400;
}

#book-search-results .search-results .has-results .search-results-item {
    font-family: 'IBM Plex Sans', sans-serif;
}

#book-search-results .search-results .has-results .search-results-item h3 {
    font-family: 'Old Standard TT', serif;
}

/* Dark mode: override hardcoded color: #333 (invisible on dark background) */
.book.color-theme-2 #book-search-results .search-results .has-results .search-results-item {
    color: #bdcadb;
}

.book.color-theme-2 #book-search-results .search-results .has-results .search-results-item a {
    color: #4183e4;
}

.book.color-theme-2 #book-search-results span.search-highlight-keyword {
    color: #fffffa;
}














