@layer pre-load, reset, baseline, overload-1, print;
@import url("./reset.css") layer(reset);

/*
 * saving this for when doing a table of contents, position: sticky isn't good enough
 *https://lea.verou.me/blog/2020/06/hybrid-positioning-with-css-variables-and-max/
 * will also need to make use of container queries to shift it into static positioning when the screen isn't wide enough
 *nav{
  border: dashed lime 3px;
  position:fixed;
  left: 20px;
  top: 100px;
  min-width:200px;
}
 * */


@layer overload-1{
dt{
  font-weight:normal;
}
}

@layer baseline {

:root {
    --base-text-size: 1.1rem;
    font-size: 18px;
}
body {
    padding: 0px;
    margin: 0px;
    font-family: "Atkinson Hyperlegible", sans-serif;
    -webkit-font-smoothing: antialiased;

    /*make the width and scrolling behavior correct
     * If horizontal scrolling is needed the layout broke*/
    width: 100vw;
    width: 100svw;
    overflow: hidden scroll;
}

.dt-subtitle {
    margin-left:0px;
}

figure {
    background: hsla(0, 0%, 30%, 50%);
    border-radius: 0.5rem;
}

figcaption {
    text-align: center;
}

a {
    font-weight: bold;
    text-decoration: none;
    width: fit-content;
    height: fit-content;
}
#github_shrink {
    transform: scale(0.37);
    transform-origin: top left;
}
a.obj-wrapper{
    display: block;
}


a:hover {
    text-decoration: underline;
}

footer {
    width: 100%;
    /*using grid instead of flexbox due to greater flexibility in case I wanna add stuff to the layout for some reason*/
    display: grid;
    justify-content: center;
    align-content: center;
    /*footer isn't a keyword it's just the string I chose*/
    grid-template-areas: "footer"
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
}

.socials {
    display: flex;
    flex-flow: row wrap;
    gap: 1rem;
    align-items: center;
    justify-content: center;
    max-height: 2rem;
}

.nav-link{
    font-size: 2rem;
    padding: 0em 0.25em;
    border-radius: 0.5rem;
    font-variant: small-caps;
    font-family: "Courier Prime", serif;
}

dt {
  font-family: "Courier Prime", Georgia, serif;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow:hidden;
  /*needed to fix the outline vanishing due to overflow hidden*/
  padding: 2px;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Courier Prime", Georgia, serif;
    /* Default bold hurt Banan's eyes*/
    font-weight: normal;
    text-align: center;
}
p{
  text-wrap: pretty;
}
a {
    font-size: inherit;
}
pre {
    font-size: inherit;
}
time {
    font-size: inherit;
}
.sourceCode {
    font-size: inherit;
}
.info {
    font-size: inherit;
}


header#header {
    box-sizing: border-box;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: space-between;
    width: 100vw;
    width: 100svw;
    padding: 0.5em 1em;
}
article {
    max-width: min(66ch, 100vw);
    max-width: min(66ch, 100svw);
    width: 100%;
    padding: 1rem;
}
video, img {
    max-width: -moz-available;
    max-width: fill-available;
}
main {
    box-sizing: border-box;
    display: block flex;
    margin-top: 1rem;/*calc(24px + 3rem) 1rem 1rem 1rem;*/
    padding: 1rem;
    /* needed due to flex parent*/
    width: 100%;
    /*https://ux.stackexchange.com/a/34125*/
    /*https://ux.stackexchange.com/a/34148*/
    /*https://pearsonified.com/golden-ratio-typography-intro/*/
    /*https://grtcalculator.com/*/
    /*or maybe not, https://en.wikipedia.org/wiki/Line_length#Electronic_text*/

    & > header {
        box-sizing: border-box;
        padding: 0rem 1rem;
        max-width: 66ch;
        width: 100%;
    }

    /* needed due to being flex itself*/
    flex-direction:column;
    /* put things in center*/
    /* not sure if I want everything centered or just code blocks but I like everything centered atm*/
    justify-content: center;
    align-items: center;

}
header#article-header {
    /*max-width: -moz-available;
    max-width: -webkit-fill-available;
    max-width: fill-available;*/
    display: block flex;
    flex-direction:column;
    /* put things in center*/
    /* not sure if I want everything centered or just code blocks but I like everything centered atm*/
    justify-content: center;
    align-items: center;
}
dl {
    max-width: -moz-available;
    max-width: -webkit-fill-available;
    max-width: fill-available;
}
article {
    display: block flex;
    flex-direction:column;
    /* put things in center*/
    /* not sure if I want everything centered or just code blocks but I like everything centered atm*/
    justify-content: center;
    align-items: center;
}
blockquote {
    /*font-style: italic;*/
    padding: 0.4em 0.5em;;
    border-radius: 0.5rem;
    p{
        padding: 0em 0.5em;
    }
}
/*might need to become grid when adding in table of contents and sidenotes*/
#content-outer {
    display: flex;
    justify-content: center;
    align-items: center;
}
.icon {
    width: 2rem;
    height: 2rem;
}

/* all of these can break out of the box we want to put them in*/
.sourceCode, object, :has(> object), img, :has(> img), pre{
    max-width: -moz-available;
    max-width: -webkit-fill-available;
    max-width: fill-available;
    width: fit-content;
    /* this may bite me in the ass*/
    /*display:flex;
    justify-content: center;*/
}

pre {
    box-sizing: border-box;
    min-height: 2em;

    /*
     * need to may y axis scroll hidden for chromium
     * */
    overflow:scroll hidden;
    /*background: #444;*/
    border-radius: 0.5rem;
    /*border: 0.2em solid red;*/
    padding: 0.5rem;
}

hr {
    box-sizing: border-box;
    width: 100%;
}

p {
    /*https://pearsonified.com/golden-ratio-typography-intro/ is where this came from and tbh having a bigger line height does make things more readable although I tune it down a bit*/
    line-height: 1.5;
    /* makes spacing better subjectively speaking*/
    margin-bottom: 1lh;
    margin-top:0;
}

footer {
    display: flex;
    margin:20px;
    /*width:100%;*/
}

p, ul, ol {
    /*need to take up full width for alignment reasons*/
    width: 100%;
}

}
/* we really want to make sure this doesn't stick around when colors load in regardless of when/how colors get loaded in*/
@layer pre-load{
    main > header {
        border: 0.7rem solid transparent;

    }
}
/* I mean why not? */
@media print {
@layer print{

#header {
    visibility: hidden;
}
main {
    border-style: none;
}
pre {
    page-break-inside: avoid;
    text-wrap: wrap;
}
iframe, video {
    display: none;
}
section {
    break-inside: avoid;
}
:is(h1,h2,h3,h4,h5):has(+iframe), :is(h1,h2,h3,h4,h5):has(+video) {
    display: none;
}
.socials {
    display: none;
}
/* https://piccalil.li/blog/printing-the-web-making-webpages-look-good-on-paper */
a[href]:after {
	content: " (" attr(href) ")";
}

}
}

