body:not(.fframe) {overflow-y: scroll; overflow: -moz-scrollbars-vertical;}

   /* variables */
:root {
    
    font-size: 20px;
    
    font-family: sans-serif;
    line-height: 1.5;

    color-scheme: light dark;

    /* this colour is only used in dark mode */
    --dark-mode-color: #231132;
    --bg: #ffffff;
    --bg-half:#ffffff80;
    --link-color: #1175e2;
    --ascent-color: #006cdf;
    --dark-grey-color: #757575;
    --light-grey-color: #eff1f5;
    --airy-grey-color: #fafafa;
    --green-color: #098639;
    --attn: #ff0000;
    --purple-color: #ba06ba;
    --subtle-color: #414566;
--shadow: rgba(0, 0, 0, .1)
}

  @font-face {
    font-family: "Atkinson";
    src: url("font.ttf");
}
img {max-width:70%;}
td img, figure img {display:block; margin:auto;}
.frontnav {
  font-size:20px;
  padding-top:1em;
  font-weight:bold;
}
.frontnav a {text-decoration:none;}  
   
@media  (max-width: 1366px) {
.container:before {
  content: "";
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -100;
  background-image: url(bluelander.png);
  background-position:center;
  background-repeat: no-repeat;
  opacity: 0.075;
}
.popimage img {display:none;}
  :root {
        /* mobile base font size remains 16px whether zialucia on or off */
        font-size: 16px;
    }
    
}

@media (min-width: 1366px) {
.player {display:block;}
.container:before {
  content: "";
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -100;
  background-image: url(bluelander.png);
  background-repeat: no-repeat;
  opacity: 0.15;
}
  
.popimage img {
	display:none;

}
.popimage a:hover img {
	display:block;
	position:fixed;
	right:5%;
	top:35%;
        max-width:20%;
	border:1px solid var(--light-grey-color);
	box-shadow: 1px 1px 5px var(--shadow);
}
}
@media (min-width:2300px) {
  .popimage a:hover img {
    right:20vw;
  }
}
.lightsecret {display:inline;}
.darksecret {display:none;}
/* dark mode
 * create a new color (dark-mode-color)
 * override existing colors */
@media (prefers-color-scheme: dark) {
    :root {
        color: #fff;
        background: var(--dark-mode-color);
        --bg: #231132;
	--bg-half: #23113280;
        --link-color: #70b3ff;
        --dark-grey-color: #b1b6bb;
        --light-grey-color: #353535;
        --airy-grey-color: #2b2b2b;
        --purple-color: #ee94f6;
        --subtle-color: #ccc;
        --green-color: #06b348;
        --attn: #FFFF00;
        --shadow: rgba(0, 0, 0, .8)
    }
    .lightsecret {display:none;}
    .darksecret {display:inline;}
  
}

/* general */
html {
    line-height: 1.15;
    /* prevent adjustments of font size after orientation changes in iOS */
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
}

a {
    text-decoration: underline dotted;
    color: var(--link-color);
}
.mininav a {text-decoration:none;}

a:hover {
    text-decoration: underline;
}

a:visited {
  color: var(--purple-color);}


a.btn {
    display: inline-block;
    cursor: pointer;
    background: var(--link-color);
    color: #fff;
    border: 1px solid var(--ascent-color);
    padding: 8px 24px;
}

a.btn:hover,
a.btn:active {
    background: var(--ascent-color);
    text-decoration: none;
}

a.btn:disabled {
    pointer-events: none;
    background: var(--ascent-color);
}

.sidenote {
    font-size: 90%;
    position: relative;
    border: 2px #ffffff00 solid;
}
iframe {
	aspect-ratio: 16 / 9;
	width: 100%;
}
/* Wide viewport */

@media (min-width: 1366px) {
    .sidenote, .sideimg {
      display:list-item;
      list-style:none;
        float: right;
        clear: right;
        margin-right: -23vw;
        text-align: left;
        top: -1rem;
        width: 20vw;
        margin-top: 0.5rem;
        padding: 8px 5px 5px 25px; 
        /*text-indent: -1.6rem;*/
        color:var(--subtle-color);
	background:var(--bg-half);
    }
    .left:not(figcaption) {
        float: left;
        clear: left;
        margin-left: -23vw !important;
    }
.sideimg {padding:5px; border:1px solid var(--light-grey-color);
box-shadow: 1px 1px 5px var(--shadow); max-width:100%;}

}

/* Narrow viewport */
@media screen and (max-width: 1366px) {
  iframe {height:60px;}
.sideimg {max-width:100px;max-height:100px; float:right; margin: 10px 0 0 10px;}
.sideimg.left {float:left; margin: 10px 10px 0 0;}
    .sidenote {
        float: left;
        text-align: left;
        width:97%;
        margin: 1rem 0;
        padding: 5px 5px 5px 5px; 
        /*text-indent: -1.6rem;*/
        background:var(--light-grey-color);
        border:2px #888 dashed;
        display:none; }
    .sidenote-number:hover .sidenote {display:block;}
    .sidenote:before {margin-left:0rem !important; padding-left:0px !important;}
}
body {
    counter-reset: sidenote-counter;
}
.sidenote-number {
    counter-increment: sidenote-counter;
}
/* Counter before the sidenote in the margin. */
.sidenote::before {
    content: counter(sidenote-counter)". ";
    position: relative;
    vertical-align: baseline;
    font-size: 1em;
    font-weight: bold;
    color:var(--attn);
    padding-left:12px;
    padding-right:0px;
    margin-left:-1.7rem;
}
/* Counter in the main body. */
.sidenote-number:before {
  content: "‍[";
  vertical-align: super;
    font-size: 0.7em;
    font-weight: bold;
    color:var(--attn);
    padding-left:2px;
}
    
.sidenote-number:after {
    content: counter(sidenote-counter)"]";
    color:var(--attn);
    vertical-align: super;
    font-size: 0.7em;
    font-weight: bold;
    margin-right: 0.2rem;
}

.attr:before {content: "{";}
.attr:after {content: counter(sidenote-counter)"}";}

@media (min-width: 1366px) {
    /* Highlight the sidenote when mouse hovers on the sidenote number in body. */
    .sidenote-number:hover {cursor:default;}
    .sidenote-number:hover:after {text-decoration:underline dotted; cursor:pointer;}
    .sidenote-number:hover:before {text-decoration:underline dotted; cursor:pointer;}
    .sidenote-number:hover .sidenote  {
        /*background:var(--light-grey-color);*/
        border:2px #888 dashed;
    }
.sidenote:hover {border:2px solid #FFFFFF00 !important;}
    
}

h1 {
    font-size: 1.8rem;
    font-weight: 500;
    /*padding-bottom: 4px;*/
    margin: 16px 0 0 0;
}


h2,
h3 {
    font-weight: 500;
    margin: 16px 0;
}

.subhead {
  display: block;
    margin-bottom: 1.33em;
    margin-left: 0;
    margin-right: 0;
    font-weight: bold;
    border-bottom: 2px solid var(--light-grey-color); padding-bottom:1em;
}
main {
    font-family:  Sans-serif;
    font-size:1.1rem;
    max-width: 34rem;
    margin-bottom: 16px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
}

.arrows:before {
  content:"»";
  color:#888;
  padding: 0 0.5rem 0 0.5rem;
}

main p { font-family:atkinson;}
@media print {
    main {
        max-width: unset;
    }
}

@media print {
    article {
        page-break-before: always;
    }
}

aside {
    max-width: 34rem;
    border: 1px dashed var(--subtle-color);
    padding: 10px;
    margin-top: 8px;
    margin-bottom:2rem;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}
@media (max-width: 34rem) {
    aside {
        margin-left: 8px;
        margin-right: 8px;
    }
.blogdate {margin-left:0;}
}
aside p {margin-top:.1rem;}
.blogdate {color:var(--dark-grey-color);}

.blogdate:before {content:"✧ ";}
.gold:before {content:"✦ "; color:gold;}
.golda:after {content:" ✦"; color:gold;}

.bloglinks {border:none;}
.bloglinks a {text-decoration:none; font-weight:bold;}
.bloglinks a:hover {text-decoration:underline;}
.bloglinks td {border-top:1px solid var(--light-grey-color); width:33%;}
.alert-error {
    color: var(--red-color);
}

section {
    max-width: 34rem;
    margin-bottom: 16px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
}

nav {
    max-width: 34rem;
    margin-top: 16px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
    font-weight:550;
    color:#888;
}

nav li {
  display:inline;
  list-style-type:none;
  
}
nav li:before {
  content:"»";
  color:#888;
  padding: 0 0.5rem 0 0.5rem;  
}

nav a {text-decoration:none;}

@media print {
    nav {
        display: none;
    }
}

small {
    /* fix font size in all browsers */
    font-size: 80%;
}

/* prevent sub and sup 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;
}

ol,
ul {
    padding-left: 24px;
}

blockquote {
    border-left: 4px solid var(--light-grey-color);
    padding-left: 16px;
    margin-left: 0;
    color: var(--subtle-color);
}

figure {
    margin: auto;
background:var(--bg);
padding:5px; border:1px solid var(--light-grey-color);
box-shadow: 1px 1px 5px var(--shadow);
max-width:72%;
}
figure img {border: 1px solid var(--light-grey-color); max-width:100%;}

figcaption {
    font-size: 0.9rem;
    text-align: center;
    padding: 5px 5px 0 5px;

}


.left:not(.sidenote):not(.sideimg) {text-align:left; margin:auto;}


dt {
    font-weight: 700;
}

dd {
    margin-left: 0;
}

table :not[.content]{
    /* remove text indentation from table contents in Chrome and Safari */
    text-indent: 0;

    /* fix table border color inheritance in Chrome and Safari */
    border-color: inherit;

    border-collapse: collapse;
    border: 1px solid var(--light-grey-color);
    width: 100%;
    box-sizing: border-box;
    margin:1.5rem 0 1.5rem 0;
}
table {border:1px solid var(--light-grey-color); width:100%; }
.disc {border-left:none; border-top:none; border-right:none;font-weight:bold;}
thead:nth-child(odd),
tr:nth-child(even) {
    background: var(--light-grey-color);
}

.content {border:none;}
.content td {padding:10px 2px 10px 2px; width:50%; vertical-align:top; padding-bottom:24px;}
.content tr:nth-child(even) {background: inherit;}


th,
td {
    padding: 4px; vertical-align:top;
}

pre {
    background: var(--airy-grey-color);
    overflow-x: auto;
}

code {
    background: var(--airy-grey-color);
    padding: 2px;
}

hr {
    border-top: 1px solid var(--light-grey-color);
    border-bottom: none;
    border-left: none;
    border-right: none;
}

details {
    border: 1px solid var(--light-grey-color);
    margin-bottom: 8px;
    background:var(--bg);
    box-shadow:1px 1px 5px var(--shadow);
    font-family:Atkinson;
    padding:3px;
}

summary {font-family:serif;padding:3px;}

details[open]::details-content {
  padding: 0.5em;}

details > div {
    padding: 16px 24px;
    
}

details > div > p {
    margin: 0;
    font-family:serif;
}

details > div > p + p {
    margin-top: 16px;

}

summary {
    cursor: pointer;
    user-select: none;
    background-color: var(--light-grey-color);
    padding: 8px;
}

footer {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
    margin-top: 56px;
    margin-bottom: 16px;
    padding-left: 8px;
    padding-right: 8px;
    color: var(--dark-grey-color);
}

.footer-comment {
    margin-bottom: 8px;
}

.help {
    cursor: help;
    text-decoration: dotted underline;
}

/* mods
 * they override specific classes with specific styles */
.type-approve {
    color: var(--green-color) !important;
}

.type-delete {
    color: var(--red-color) !important;
}
del {color:var(--dark-grey-color); text-decoration-line: line-through; text-decoration-color:#cc0000AA;text-decoration-style:wavy;}

.type-danger {
    background: var(--red-color) !important;
    border-color: var(--red-color) !important;
}

/* form */
label {
    display: block;
    margin-top: 16px;
}

button,
input,
optgroup,
select,
textarea {
    /* fix font styles in all browsers */
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    /* remove margin in Firefox and Safari */
    margin: 0;
}

button,
select {
    /* remove inheritance of text transform in Edge and Firefox */
    text-transform: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
    /* fix inability to style clickable types in iOS and Safari */
    -webkit-appearance: button;
}

input[type="text"],
input[type="url"],
input[type="email"],
input[type="password"],
textarea {
    display: block;
    border: 2px solid var(--light-grey-color);
    box-sizing: border-box;
    width: 34rem;
}
@media (max-width: 34rem) {
    input[type="text"],
    input[type="url"],
    input[type="email"],
    input[type="password"],
    textarea {
        width: 100%;
    }
}
@media (prefers-color-scheme: dark) {
    input[type="text"],
    input[type="url"],
    input[type="email"],
    input[type="password"],
    textarea {
        color: #fff;
        background: var(--light-grey-color);
    }
}

input[type="submit"] {
    cursor: pointer;
    background: var(--link-color);
    color: #fff;
    border: 1px solid var(--ascent-color);
    padding: 8px 24px;
}

input[type="submit"]:hover,
input[type="submit"]:active {
    background: var(--ascent-color);
}

input[type="submit"]:disabled {
    pointer-events: none;
    background: var(--ascent-color);
}

form .helptext {
    color: var(--dark-grey-color);
}

.form-error {
    color: var(--red-color);
}

.form-inline {
    display: inline-block;
}

.form-inline input[type="submit"] {
    border: none;
    background: unset;
    color: var(--link-color);
    padding: 0;
}

.form-inline input[type="submit"]:hover {
    text-decoration: underline;
}

/* landing */
.lead {
    max-width: 34rem;
    border: 1px dashed #000;
    padding-top: 8px;
    padding-bottom: 8px;
}
@media (prefers-color-scheme: dark) {
    .lead {
        border-color: #fff;
    }
}

.cta {
    margin-top: 32px;
    margin-bottom: 32px;
}

.cta-link {
    font-size: 20px;
}

/* comparisons */
.comparisons {
    max-width: 1366px;
}

.comparisons h1,
.comparisons p,
.comparisons ol,
.comparisons ul {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
}

.comparisons-matrix {
    overflow: auto;
}

.comparisons table {
    min-width: 1366px;
    white-space: nowrap;
}

.comparisons thead > tr > th:not(:first-child),
.comparisons tbody > tr > td:not(:first-child) {
    text-align: center;
}

.comparisons th {
    text-align: left;
}

.comparisons tr {
    min-width: 300px;
}

/* blog index */
.blog a:hover {
    text-decoration: underline;
}

.blog a:visited {
    color: var(--purple-color);
}

.blog a:active {
    color: var(--red-color);
}

.drafts {
    border: 1px solid var(--light-grey-color);
    padding: 16px 16px 0;
    margin-bottom: 24px;
}

.posts {
    list-style: none;
    padding-left: 0;
}

.posts li {
    margin-bottom: 24px;
}

.posts small {
    white-space: nowrap;
    color: var(--dark-grey-color);
}

.posts time {
    white-space: nowrap;
}

.byline {
    color: var(--dark-grey-color);
    margin: 16px 0 24px;
}

.byline img {
  width: 100%;
}

.webring {
    margin-top: 64px;
    display: flex;
    justify-content: space-between;
}

.webring-name {
    color: #000;
}
@media (prefers-color-scheme: dark) {
    .webring-name {
        color: #fff;
    }
}

/* post detail */
.posts-item-brand {
    display: block;
    margin-top: 16px;
    margin-bottom: 16px;
    color: var(--dark-grey-color);
}

.posts-item-brand:hover {
    text-decoration: none;
}

.posts-item-brand::before {
    content: "« ";
}

.posts-item-title {
    margin-bottom: 8px;
}

.posts-item-byline {
    color: var(--dark-grey-color);
    margin-bottom: 8px;
}

.posts-item-notice {
    border: 1px solid var(--dark-grey-color);
    padding: 8px 16px;
    margin-top: 16px;
}

.posts-item-body p {
    
    font-family: serif;
    font-size: 1.1rem;
    
}

.posts-item-body li {
    
    font-family: serif;
    font-size: 1.1rem;
    
}

.posts-item-body img {
    max-width: 100%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* comments */
.comments {
    margin-top: 64px;
}

.comments-title {
    font-size: 1.2rem;
    margin-top: 32px;
    padding-bottom: 4px;
    border-bottom: 2px solid var(--light-grey-color);
}

.comments-body {
    margin-bottom: 16px;
}

.comments-body p {
    margin-top: 4px;
}

/* page detail */
.pages-item-brand {
    display: block;
    margin-top: 16px;
    margin-bottom: 16px;
    color: var(--dark-grey-color);
}

.pages-item-brand:hover {
    text-decoration: none;
}

.pages-item-brand::before {
    content: "« ";
}

.pages-item-title {
    margin-bottom: 8px;
}

.pages-item-byline {
    color: var(--dark-grey-color);
    margin-bottom: 8px;
}

.pages-item-body p {
    
    font-family: serif;
    font-size: 1.1rem;
    
}

.pages-item-body li {
    
    font-family: serif;
    font-size: 1.1rem;
    
}

.pages-item-body img {
    max-width: 100%;
}

.pages-generic-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 16px;
    row-gap: 16px;
    margin-top: 16px;
}
@media (max-width: 490px) {
  .pages-generic-grid {
    grid-template-columns: 1fr 1fr;
  }
 
}
@media (max-width: 340px) {
  .pages-generic-grid {
    grid-template-columns: 1fr;
  }
  
}

/* dashboard */
.dashboard-cta {
    font-size: 1.1rem;
}

.dashboard-list {
    margin: 1rem 0;
    line-height: 1.6;
}

/* images */
.images-grid {
    max-width: 100%;
    margin-top: 32px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    grid-template-rows: 302px;
}

.images-grid-item {
    display: flex;
    justify-content: center;
    border: 1px solid var(--light-grey-color);
}

.images-grid-item img {
    max-width: 300px;
    max-height: 300px;
    object-fit: contain;
}

/* image detail */
.images-item {
    max-width: 100%;
    margin-top: 32px;
    margin-bottom: 32px;
    text-align: center;
}

.images-item img {
    max-width: 100%;
    max-height: 100vh;
}

.images-item-byline {
    color: var(--dark-grey-color);
}

/* analytics */
.analytics-chart {
    background: var(--light-grey-color);
    line-height: 0;
}

svg .analytics-chart-bar {
    fill: var(--link-color);
}

svg .analytics-chart-bar:hover {
    fill: var(--ascent-color);
}

svg .analytics-chart-text {
    font-family: monospace;
    font-size: 10px;
}

/* billing stripe */
#subscription-form input[type="submit"] {
    margin-top: 8px;
}

#card-element {
    border: 1px solid var(--light-grey-color);
    padding: 4px 8px;
}

#card-element-errors {
    margin-top: 8px;
    color: var(--red-color);
}

.neocat {background: no-repeat center url("/neocat.png");}
.emoji {
vertical-align:-10%;
background-size:20px 20px;
width:20px;
height:20px;
padding-left:0.5em;
display:inline-block;
}

details summary::marker,
:is(::-webkit-details-marker) {
  content: "📕 ";
  font-family: monospace;
  color: green;
  font-weight: bold;
}
details[open] summary::marker {
  content: "📖 ";
  color: red;
}
.fframe {max-width:1000px; margin:auto;}
aside p {margin-left:2rem;}

a[href^='http'] {
background:no-repeat center right url("/images/icons/ext.svg");
background-size: 12px 12px;
padding-right:16px;
}

a[href*='wikipedia.org'] {
background:no-repeat center right url("/images/icons/wiki.svg");
background-size: 20px 20px;
padding-right:22px;
}


a[href*='youtube.com'] {
background:no-repeat center right url("/images/icons/youtube.svg");
background-size: 18px 18px;
padding-right:22px;

}

a[href^='mailto'] {
background:no-repeat center right url("/images/icons/at.svg");
background-size: 18px 18px;
padding-right:22px;

}

.footerlinks {
color:var(--light-grey-color)
}

.footerlinks a[href*='mailto'] {
background-size:14px 14px;
padding-right:18px;
}


