@font-face {
    font-family: 'times_new_romanregular';
    src: url('/fonts/Times Roman.woff2') format('woff2'),
         url('/fonts/Times Roman.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@keyframes fadeout {
    0%   {opacity: 1;}
    100% {opacity: 0;}
}

@keyframes splash_out {
    0% { clip-path: xywh(0rem 0rem 100vmax 100vmax);}
    95% { clip-path: xywh(1.25rem 1rem 2.25rem 2.25rem); opacity: 1;}
    100% { clip-path: xywh(1.25rem 1rem 2.25rem 2.25rem); opacity: 0;}
}


*, ::after, ::before {margin: 0; padding: 0; font-weight: normal; box-sizing: border-box;}
html {font-size: clamp(24px, 1.5vw, 30px); overflow-y: scroll; scroll-behavior: smooth;}
body {
    color: rgba(255, 255, 255,0.8); 
    font-family: 'times_new_romanregular', 'Times New Roman','Times',serif; 
    display: flex; 
    flex-direction: column; 
    justify-content: center;
    min-height: 100vh;
    min-height: 100lvh;
    position: relative;
}

/* --------------------------- */
/* bananas
/* --------------------------- */

#bananaleft, #bananaright {
    max-width: 650px!important; 
    pointer-events: none; 
    transition: transform 0.7s ease-in-out; 
    transform: translateX(-100%); 
    position: fixed; 
    width: 24vw!important; 
    left: 0; 
    top: calc(100px + 8vh); 
    height: calc(92vh - 100px); 
    opacity: 0.3; 
    z-index: 0;
    object-fit: cover; 
    object-position: 100% 0%;
}
#bananaright {left: auto; right: 0; object-position: 0% 0%; transform: translateX(100%);}
.loaded #bananaleft, .loaded #bananaright {transform: translateX(0%);}

/* --------------------------- */
/* general
/* --------------------------- */

img {max-width: 100%;}
a, a[hover-text]::before {
    color: rgba(255, 255, 255,0.8); 
    text-decoration-style: solid; 
    text-decoration-color: rgba(221,221,221,0.5); 
    text-underline-offset: 0.15em;
    text-decoration-thickness: 0.04em;
    display: inline-block;
    position: relative;
}
a:not(#logo,.btn)[hover-text]::before {
    content: attr(hover-text);
    position: absolute;
    color: transparent;
    text-decoration: underline;
    text-decoration-color: rgba(221,221,221,0.65);
    text-decoration-thickness: 0.04em;
    clip-path: inset(0% 100% 0% 0%);
    transition: clip-path 0.3s ease-in-out;
}
a:not(#logo,.btn)[hover-text]:hover::before {
    clip-path: inset(0% 0% 0% 0%);
}

#content .fullscreen, #splash {align-items: center; display: flex; justify-content: center; min-height: 100%; position: relative; z-index: 9;}

/* --------------------------- */
/* background
/* --------------------------- */

#background {
    z-index: 8; 
    background: #1b2e8b; 
    min-height: 100lvh; 
    position: fixed;
    width: 100%;
    z-index: -1;
    top: 0; 
    left: 0;
}
.posts body, .portfolios body {justify-content: flex-start;}

/* --------------------------- */
/* splash
/* --------------------------- */

#splash {
    background: #222 url(/img/waves.svg) center center / 3.5rem auto; 
    position: fixed;
    top: 0; 
    left: 0; 
    z-index: 21; 
    width: 100%; 
    pointer-events: none; 
    color: rgba(255, 255, 255,0.8);
    animation-name: fadeout; 
    animation-delay: 1.4s; 
    animation-duration: 0.3s; 
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    box-shadow: 
    inset 0 0 0 1rem #222,
    inset 0 0 0 1.08rem #2d2d2d,
    inset 0 0 0 1.5rem #222;
}
#splash a {text-decoration-color: rgba(255, 255, 255,0.8); color: rgba(255, 255, 255,0.8); text-underline-offset: 0.1em;}
#splash > div:not(.line) {
    padding: 0 2rem 1rem 1.25rem;
    animation-name: fadeout; 
    animation-delay: 1s; 
    animation-duration: 0.3s; 
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    margin-top: -2rem;
}
#splash .medium {display: inline-block; margin: 0 0.15em;}
#splash .medium span {display: inline-block; margin: 0 0.07em 0 0;}
#splash .medium span:first-child {margin-right: 0.1em;}
@media screen and (max-width: 600px) {
    #splash .medium {display: block; margin: 0.15em 0 0.15em 0.15em;}
    #splash > div {text-align: center;}
}

/* --------------------------- */
/* fontsizes
/* --------------------------- */

body {font-size: 1rem; line-height: 1.25;}
.small {padding-bottom: 0.2rem; font-size: 0.55rem; text-transform: uppercase; letter-spacing: 0.3em; display: inline-block;}
.posts #content > p:first-of-type, blockquote, .smallmedium {font-size: 1.42rem;}
blockquote {padding-left: 2.1vw;}
.medium, h1 {font-size: 3.33rem; line-height: 1;}
h1 {padding-bottom: 0.4em;}
h2 {padding-bottom: 0.6em; padding-top: 0.6em;}
h3 {padding-bottom: 0.6em; padding-top: 0.6em;}
.large {font-size: 6.5rem;}

/* --------------------------- */
/* edge links
/* --------------------------- */

#scrolltotop, #logo, #menu, #nextlink, #lightmode {position: fixed; top: 1rem; z-index: 12;}
#scrolltotop, #logo, #menu, #lightmode {text-transform: lowercase;}
#menu {right: 1.25rem; position: absolute; z-index: 11;}
#menu li {list-style: none; display: inline;}
#menu li a {display: inline-block; margin: 0 0 0 1.5vw;}
#logo {left: 1.25rem; top: 1rem; line-height: 1; display: block; border: 1px solid rgba(255, 255, 255,0.4); opacity: 0.8;}
#logo img {width: 2.25rem; height: auto; display: block; opacity: 1; filter: grayscale(0.14) brightness(1.05) contrast(1.1) hue-rotate(-9deg);}
#logo::after {
    content: "";
    width: calc(2.25rem + 2px);
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255,0.4);
    position: absolute;
    top: 0;
    margin: -1px;
    clip-path: circle(0% at 0% 0%);
    transition: clip-path 0.25s linear;
}
#logo:hover::after {
    clip-path: circle(145% at 0% 0%);
}

.bgcolor #logo img {opacity: 0;}
.bgcolor #logo:before {content: ""; width: 100%; height: 100%; background: url(/img/icon-196x196-transparent.png) center center / contain no-repeat; position: absolute;}
#scrolltotop {top: auto; bottom: 1rem; right: 1.25rem; opacity: 0; pointer-events: none; transition: opacity 0.3s ease-in-out;}
#nextlink {top: auto; bottom: 1rem; left: 1.25rem; right: auto; max-width: calc(65% - 30px); text-transform: lowercase; z-index: 10; display: none;}
#nextlinktop, #prevlinktop {top:50vh; left: 1.25rem; position: fixed; transition: opacity 0.3s ease-in-out; opacity: 1; transform: rotate(-90deg) translateX(-50%); transform-origin: 0% 0%; z-index: 10;}
#nextlinktop {left: auto; right: 1.25rem; transform-origin: 100% 0%; transform: rotate(90deg) translateX(50%);}
#prevlink {display: none;}
.scrolled #scrolltotop {opacity: 1; pointer-events: all; z-index: 10; white-space: nowrap;}


/* --------------------------- */
/* content
/* --------------------------- */

#content {width: 100%; max-width: 32rem; text-align: left; margin: 0 auto; padding: 9rem 1.25rem 12rem;}
#content h1 {text-align: center; position: relative; z-index: 1;}
#content h2 {padding-top: 1em;}
body:not(.home) #content h1 {padding-bottom: .7em;}
.home #content {width: 60%; text-align: center; width: 100%; max-width: 42rem; }
#content p, #content ol, #content ul, #content table {padding-bottom: 1.25em;}
.home #content p {padding-bottom: 0;}
#content pre {max-width: 100%; overflow: auto; font-size: 55%; margin-bottom: 2em; padding: 1rem; border: 1px solid rgba(255, 255, 255,0.4);}
blockquote {margin-top: 0.5em; border-left: 0.2rem solid rgba(255,255,255,0.3); margin-bottom: 1.35em; padding-left: 2.1vw;}
#content img {width: 100%; max-width: 100%; margin-bottom: 0.2em;}
#content p img {opacity: 0.85; display: block;}
#content ul {margin-left: 2em}
#content ol {margin-left: 2em;}
#content p:last-child {padding-bottom: 0;}
#content .fullscreen {width: 100%; left: 0; min-height: 100vh;}
.small.date {margin: 1rem 0 0.15rem; display: inline-block;}

/* --------------------------- */
/* portfolios
/* --------------------------- */

.portfolios h1 {margin: 0 -15vw; padding-bottom: .35em!important;}
.portfolios h1 + p {margin-top: 2em;}
.posts .fullscreen h1 {position: relative; margin: 0 -15vw; padding: 1.2em 0 1.4em!important;}
#content .fullscreen > a {display: block;}
.posts #content,
.portfolios #content {padding-top: 0;}
.portfolios #content .svg {width: clamp(0rem, 33rem, 85vh); max-width: 960px;}
.portfolios #content .svg svg {width: 100%; height: 100%; position: relative; right: 2vw;}

#scrolldown {position: absolute; left: 50%; margin-top: -15vh;}
#scrolldown:before {content: "»"; transform: rotate(90deg); position: absolute; color: rgba(255, 255, 255,0.8); font-size: 7rem; margin-left: -1.25rem; margin-top: -2rem; transition: opacity 0.35s ease-in-out; opacity: 0.25;}
#postdate {padding-bottom: 1.75em; font-size: 0.9rem; display: block;}

.btn {
    display: inline-block; 
    padding: 0.35em 1em 0.45em; 
    text-decoration: none; 
    border: 1px solid rgba(255, 255, 255,0.4);
    background: transparent;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
}
.btn:hover {color: #222; border-color: rgba(255,255,255,0.8);}
.btn > span {
    top: 50%;
    left: 50%;
    border-radius: 100%;
    background: rgba(255,255,255,0.8);
    position: absolute;
    display: block;
    width: 0%;
    transition: width 0.3s ease-in-out;
    transform: translate(-50%, -50%);
    aspect-ratio: 1;
    z-index: -1;
}
.btn:hover > span {
    width: 101%;
}

.threecols {display: flex; justify-content: space-between;}
.threecols > div {padding-right: 1.5rem;}

/* --------------------------- */
/* video
/* --------------------------- */

a.video {position: relative; display: block;}
a.video img {display: block;}
a.video::after,
a.video::before {
    content: "";
    width: 5rem;
    height: 5rem;
    background: #1b2e8b;
    border-radius: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}
a.video::after {
    width: 0; 
    height: 0; 
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
    border-left: 1.75rem solid rgba(255, 255, 255,0.8);
    border-radius: 0;
    margin-left: 0.25rem;
}

/* --------------------------- */
/* responsive
/* --------------------------- */

.mobile {display: none;}

@media screen and (max-width: 1300px) {
    #logo, #scrolltotop, #nextlink {position: absolute;}
    #scrolltotop {pointer-events: all; z-index: 10; white-space: nowrap;}
    #innerbody {position: relative;}
    .portfolios h1 {margin: 0;}
    .posts .fullscreen h1 {margin: 0; padding: 2.5em 0 2.7em!important;}
    #nextlink .mobile {display: inline;}
    #nextlink .desktop {display: none;}
    .large {font-size: 3.33rem;}
    .medium {font-size: 2.5rem;}
    .portfolios #content .svg {max-width: 100vw; margin-left: -11vw;}
    #postdate {font-size: 0.7rem;}
}

@media screen and (max-width: 1100px) {
    #nextlinktop, #prevlinktop {opacity: 0; pointer-events: none;}
    .posts .fullscreen h1 {max-width: 100%;}
    #nextlink {display: block;}
}

@media screen and (max-width: 750px) {
    #bananaleft, #bananaright {display: none;}
    #content .fullscreen {min-height: 0;}
    #scrolldown::before, #scrolldown {color: transparent;}
    .portfolios #content .svg {padding: 9.5rem 0 5rem;}
    .posts .fullscreen h1 {padding: 9.5rem 0 5rem!important;}
    #content h1, .posts .fullscreen h1, p {text-align: left!important;}
    html.home #content h1, html.home p {text-align: center!important;} 
    #content em {transform-origin: left center;}
}
@media screen and (max-width: 600px) {
    .threecols {flex-direction: column; gap: 1.75rem;}
}
@media screen and (max-width: 530px) {
    html {font-size: 4.5vw;}
}

/* --------------------------- */
/* lightbox
/* --------------------------- */

#lightbox {width: 100%; height: 100%; position: fixed; top: 0; left: 0; background: rgba(0,0,0,0.7); z-index: 9999999; line-height: 0; cursor: pointer; display: none;}
#lightbox .img {
    position: relative; 
    top: 50%;
    left: 50%;
    -ms-transform: translateX(-50%) translateY(-50%);
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    max-width: 100%;
    max-height: 100%;
}
#lightbox .img img {opacity: 0; pointer-events: none; width: auto;}
@media screen and (min-width: 1200px) {
    #lightbox .img {
        max-width: 1200px;
    }
}
@media screen and (min-height: 1200px) {
    #lightbox .img {
        max-height: 1200px;
    }
}
#lightbox span {display: block; position: fixed; bottom: 13px; height: 1.5em; line-height: 1.4em; width: 100%; text-align: center; color: white; text-shadow:
    -1px -1px 0 #000,
    1px -1px 0 #000,
    -1px 1px 0 #000,
    1px 1px 0 #000;  
}

#lightbox span {display: none;}

#lightbox .videoWrapperContainer {
    position: relative; 
    top: 50%;
    left: 50%;
    -ms-transform: translateX(-50%) translateY(-50%);
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    max-width: 900px;
    max-height: 100%;
}
#lightbox .videoWrapperContainer .videoWrapper {
    height: 0;
    line-height: 0;
    margin: 0;
    padding: 0;
    position: relative;
    padding-bottom: 56.333%; /* custom */
    background: black;
} 
#lightbox .videoWrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}   
#lightbox #prev, #lightbox #next {height: 50px; line-height: 36px; display: none; margin-top: -25px; position: fixed; top: 50%; padding: 0 15px; cursor: pointer; text-decoration: none; z-index: 99; color: white; font-size: 60px;}
#lightbox.gallery #prev, #lightbox.gallery #next {display: block;}
#lightbox #prev {left: 0;}
#lightbox #next {right: 0;}
#lightbox #close {height: 50px; width: 50px; position: fixed; cursor: pointer; text-decoration: none; z-index: 99; right: 0; top: 0;}
#lightbox #close:after, #lightbox #close:before {position: absolute; margin-top: 22px; margin-left: 14px; content: ""; height: 3px; background: white; width: 23px;
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
}
#lightbox #close:after {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
}
#lightbox, #lightbox * {
    -webkit-user-select: none;  
    -moz-user-select: none;    
    -ms-user-select: none;      
    user-select: none;
}