html, body {
	width: 100%; min-height: 100%;
	margin: 0; padding: 0;
    
    scroll-behavior: smooth;
}

body {
	background-color: #b5e8eb; /* from the picture */
	/* Darker Color: 2aafb3 */	
	
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
    background-attachment: fixed;
}

#teaser h1 {
	font-weight: 900; /* Inter Black */
	text-transform: uppercase;
	font-size: 240%;
	margin: 0; padding: 0;
    line-height: 100%;
}

#teaser p {
	margin: .5em 0; padding: 0;
	line-height: 140%;
}

#teaser {
	display: block;
}

/* still teaser-specific */
.mini { display: none; }

a {
	transition: color .4s ease;
}

a, a:link, a:visited {
	color: #2E66BA;
	text-decoration: none;
}

a:hover, a:active {
	color: red;
}

/* Cross page view transitions, currently Chrome only */
@view-transition {
  navigation: auto;
}

::view-transition-old(.main-view-transition),
::view-transition-new(.main-view-transition) {
  animation: fade 0.2s ease both;
}

@keyframes fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}


@media screen and (max-width: 767px) {
	body { 	background: linear-gradient(to bottom, rgb(181, 232, 235) 0%,rgba(42, 175, 179, 0.73) 100%); }
	.mini { display: inline-block; }
	#teaser img.mini {
		width: 150px;
		border-radius: 50%;
		margin: 6% auto;
		display: block;
	}
	#teaser h1 {
		text-align: center;
	}
	#teaser p {
		margin: 5% 10%;
		font-size: 140%;
		line-height: 180%;
		font-weight: 500;
	}
	
	/* at small screen landing page, put menu at bottom */
	body.landing .sidebar {
        order: 2;
    }
    body.landing .brand-title { display: none ; }
}

@media screen and (min-width: 768px) {
	body { background-image: url(svenk-blue-1024.jpg); }
	#teaser {
		width: 30%;
		/*margin: 10%;*/
		font-size: 130%;
    }
	#teaser p {
		line-height: 160%;
	}
	
	
	.post-header { display: flex; flex-direction: row; align-items: baseline; }
	.post-header h1 { flex-grow: 2; }
}

@media screen and (min-width: 1200px) {
	body { background-image: url(svenk-blue-1920.jpg); }
	#teaser {
		font-size: 150%;
	}
}


/* BEGIN OF PURE */

body, .pure-g [class*="pure-u"] {
    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
    line-height: 1.6;
    font-size: 18px;
}

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

/*
a {
    text-decoration: none;
    color: rgb(61, 146, 201);
}
*/
a:hover,
a:focus {
    text-decoration: underline;
}

h3 {
    font-weight: 100;
}

/* LAYOUT CSS */
.pure-img-responsive {
    max-width: 100%;
    height: auto;
}

#layout {
    padding: 0;
    min-height: 100%;
}

.header {
    text-align: center;
    top: auto;
    /*margin: 3em auto;*/
}

.brand-title {
    margin-top: 0; /* 3vh; */
    margin-bottom: 1vh;
}

.sidebar {
    /*background: rgb(61, 79, 93);*/
    background: rgba(255, 255, 255, 0.2);
    color: #333;
}

body.landing .brand-tagline {
    visibility: hidden;
}

body.landing .footer {
    display: none;
}

.brand-title,
.brand-tagline {
    /*margin: 0;*/
}
.brand-title {
    /*text-transform: uppercase;*/
}
.brand-tagline {
    font-weight: 300;
    color: rgb(90, 102, 111);
}

.brand-title a:link, .brand-title a:visited {
    color: inherit;
    text-decoration: inherit;
}

.brand-title a:hover, .brand-title a:focus {
    opacity: .9;
}

.nav-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.nav-item {
    display: inline-block;
}
.nav-item a {
    background: transparent;
/*    border: 2px solid rgb(176, 202, 219);
    color: #fff;*/
    margin-top: .3em;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 85%;
    margin-left: -1em; /* to compensate the padding and right-align the text */
}
.nav-item a:hover,
.nav-item a:focus {
/*    border: 2px solid rgb(61, 146, 201);*/
    text-decoration: none;
    
    /* actualy .pure-button-active */
    box-shadow: 0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset;
    border-color: #000;
}

.nav-item.active > a {
    color: black;
}

.nav-list .nav-list {
    margin-left: .5em;
}

nav.sub {
    background-color: #FFFFFFaa;
}

.content-subhead {
    text-transform: uppercase;
    color: #aaa;
    border-bottom: 1px solid #eee;
    padding: 0.4em 0;
    font-size: 80%;
    font-weight: 500;
    letter-spacing: 0.1em;
}

body.landing .content {
    background-color: transparent;
}

.content, .footer {
    background-color: rgba(255, 255, 255, .95);
    min-height: 100vh;
}

.content-wrapper, .footer-wrapper {
    max-width: 1000px;
    padding-bottom: 2em;
    /*margin: 2em;*/
    margin: 5%;
}

.footer {
    width: 100%;
    min-height: 0;
}

.footer-wrapper {
    padding-bottom: 0;
    position: relative;
    text-align: center;
    opacity: .8;
}

/* looks nice, but is too much */
/*
.footer-wrapper::before {
    display: block;
    content: '';
    width: 30px;
    height: 2px;
    background-color: #959595;
    margin-bottom: 1.5em;
}
*/

.lead { /* typically a paragraph */
    font-size: 130%;
}

.post {
    padding-bottom: 2em;
}
.post-title {
    font-size: 2em;
    color: #222;
    margin-bottom: 0.2em;
}
.post-avatar {
    border-radius: 50px;
    float: right;
    margin-left: 1em;
}
.post-description {
    font-family: Georgia, "Cambria", serif;
    color: #444;
    line-height: 1.8em;
}
.post-meta {
    color: #999;
    font-size: 90%;
    margin: 0;
}

.post-category {
    margin: 0 0.1em;
    padding: 0.3em 1em;
    color: #fff;
    background: #999;
    font-size: 80%;
}
    .post-category-design {
        background: #5aba59;
    }
    .post-category-pure {
        background: #4d85d1;
    }
    .post-category-yui {
        background: #8156a7;
    }
    .post-category-js {
        background: #df2d4f;
    }

.post-images {
    margin: 1em 0;
}
.post-image-meta {
    margin-top: -3.5em;
    margin-left: 1em;
    color: #fff;
    text-shadow: 0 1px 1px #333;
}


@media (min-width: 48em) {
    .content, .footer {
        margin-left: 25%;
    }
    
    .content-wrapper {
        margin: 20vh 3em 0;
    }
    
    .footer-wrapper {
        margin: 1em 3em;
    }

    .header {
        margin: 20vh 2em 0;
        text-align: left;
    }

    .sidebar {
        /* todo: This should also query @media min-height
         *       or have scroll
         */
        position: fixed;
        top: 0;
        bottom: 0;
    }

    .nav-item {
        display: block;
    }
} 

pre, tt {
    background-color: #f5f5f5;
}

pre {
    font-size: 80%;
    padding: 1em;
}

.footer a .icon {
    width: 1em;
    vertical-align: middle;
    opacity: .7;
}

.footer a:hover .icon, .footer a:focus .icon {
    opacity: 1;
}

/* Blog styling */

ul.blog {
    padding: 0;
}

ul.blog, ul.blog li {
    list-style: none;
}

@media screen and (max-width: 767px) {
    ul.blog a.selector {
        display: none;
    }
    
    ul.blog li {
        margin-bottom: 1.2em;
    }
    
    .nav-list .nav-list { /* display nav.sub instead */
        display: none;
    }
}

@media screen and (max-width: 923px) and (min-width: 768px) {
    .header .brand-title .suffix {
        display: none;
    }
}

@media screen and (min-width: 768px) {
    .header, .brand-title {
        display: inline-block;
    }
    
    .sidebar {
        display: flex;
        justify-content: end;
    }
    
    ul.blog li {
        display: grid;
        grid-template-columns: 1rem auto 6rem;
        grid-column-gap: 10px;
    }
    
    ul.blog .date {
        text-align: right;
    }
    
    nav.sub { /* display .nav-list .nav-list instead */
        display: none;
    }
}

ul.blog .date {
    display: block;
    font-size: 68%;
    font-family: monospace;
    color: #444;
}

ul.blog li:hover .date {
    color: #000;
}

ul.blog a.selector img {
    max-width: 1em;
    max-height: 1em;
}

/* Paper listing styling */
ul.papers .headline {
    display: block;
    font-size: 90%;
    color: #333;
}

.hide-labels .label {
    display: none !important;
}

ul.papers .label {
    font-size: 80%;
    line-height: 100%;
    float: right;
    display: inline-block;
    margin: 0 .5em;
    border: 1px solid #eee;
    border-radius: 20px;
    padding: 1px .2em;
    background-color: #eee;
}

ul.papers .links {
}

dl {
    display: grid;
/*    grid-template-rows: auto auto;
    grid-auto-columns: 1fr;
    grid-auto-flow: column;*/
   grid-template-columns: auto 1fr; /* dt auto-sized, dd takes the rest */
   /*gap: 0.5rem 1rem;*/
}

dt, dd {
    margin: 0; padding: 0;
    padding: .5rem;
    
    border-bottom: 1px dotted #333;
}

dt:last-of-type, dd:last-of-type {
    border-bottom: none;
}

dt { font-weight: bold; }

details > summary { cursor: zoom-in; /* JS will mess with this */ }

details > summary:hover {
  background-color: #94dce066;
  border-radius: .5em;
  transition: background-color 0.3s ease;
}

dd ul { padding-left: 0; }
dd ul li { list-style-position: inside; }

/* BEGIN of Chat system */

.if-chat-available,
.if-chat-available.disabled {
  display: none; /* Progressive enhancement, do not show by default */
}

.if-chat-available.available {
  display: inherit;
}

section.chat ul.output {
  padding: 0;
}

section.chat ul.output li { 
  list-style: none;
  border-radius: 1em;
  padding: 1em;
  background-color: #eee;
  margin: .2em 0;
}

section.chat ul.output {
    .nickname {
        display: inline-block;
        font-weight: bold;
        opacity: .6;
    }
    
    .nickname, .time {
        font-size: 90%;
    }
    
    .time {
        float: right;
        opacity: .6;
    }
    
    .recv, .agent {
        margin-right: 30%;
    }
    
    .sent {
        margin-left: 30%;
        
        background-color: #0078e7;
        color: white;
    }
}
