/**
 * Bootstrap
 */
textarea, input{
    border:1px solid #aaa !important;
}
.btn-primary{
    background-color:#950;
    border-color:#630;
}
.btn-primary:hover{
    background-color:#630;
    border-color:#300;
}

#top-image{
    background-position: center;
    padding:3rem;
}

*{
    line-height:1.8;
}
body{
    display:flex;
    flex-direction:column;
    /*
    */
    background-color:#000;
}
h1{
    font-size:1.8rem;
    font-weight:bold;
    margin-bottom:1em;
    text-align:center;
}
h2{
    font-weight:bold;
    background:linear-gradient(#530, #000);
    margin:1em 0;
    padding:0.2em 0.7em;
    color:#fff;
    font-family:sans-serif;
    letter-spacing:0.1em;
    color:#ff5;
    text-shadow:
        1px 1px 0px #850,
        1px 2px 0px #850,
        1px 3px 0px #850;
    border:1px solid #fd0;
    box-shadow:0px 0px 10px -2px #555;
}
h3{
    font-weight:bold;
    padding:0.3em 0.5em 0.3em 0.5em;
    margin-top:1em;
    margin-bottom:1em;
    width:100%;
    color:#530;
    border:1px solid #850;
    background-color:#fe9;
    border-radius:8px;
}
h4{
    font-weight:bold;
    margin:1.5em 0 0.5em 0;
}
blockquote > h4{
    margin:0.5em 0;
}
blockquote{
    position:relative;
}
blockquote:before{
    content:'”';
    font-family:sans-serif;
    font-size:6em;
    color:#ccc;
    position:absolute;
    right:5px;
    top:0.5em;
    line-height:0;
}


footer{
    background:linear-gradient(#530, #000);
    padding:20px;
    color:#fff;
}
#container{
    display:flex;
    align-items:flex-start;
    background-color:#e0e0e0;
    padding-bottom:40px;
}
nav#menu{
    display:flex;
    flex-direction:column;
    margin:0;
    text-align:right;
    width: 320px;
}
nav#menu ul, nav ol, nav il{
    list-style:none;
}
nav#menu a{
    color:#000;
    line-height:2;
}
nav#menu #menu-contents{
    display:flex;
    flex:1;
    flex-direction:column;
    margin-top:20px;
}
nav#menu #menu-contents #info{
    padding-left:2rem;
}

nav#menu #image{
    padding:20px 0 0 20px;
}
nav#menu #image div{
    width:300px;
    height:427px;
    background-position:top;
    background-repeat:no-repeat;
    background-size:contain;
    border:1px solid #888;
    box-shadow:0px 0px 10px -2px #555;
}
nav#menu #image div.index{
    background-color:#000;
    background-image:url('../images/cover.jpg');
}
nav#menu #image div.page{
    background-color:#fff;
    background-image:url('../images/chapter.jpg');
}


#main{
    flex:1;
    padding:20px 20px 20px 40px;
}
#main .page-class{
    display:block;
    margin:auto;
    width:128px;
    height:auto;
}
#main > div, #main > div > div{
    margin:0 0 20px 20px;
}
p{
    text-indent:1em;
}


/**
 * 
 */
.note-inline{
    /*
    font-size:1.05em;
    font-family:'GenShinGothic-P-Bold';
    */
    display:inline-block;
    font-weight:bold;
    text-indent:0;
}
.note, .strong{
    /*
    font-size:1.05em;
    display:inline-block;
    font-family:'GenShinGothic-P-Bold';
    */
    font-weight:bold;
    text-indent:0;
}
.strong {
    text-emphasis:filled circle #000;
}
blockquote{
    padding:1em;
    border-radius:6px;
    background-color:#fffff3;
    border:1px solid #a95;

}

figure.python-quest {
    display:table-cell;

    text-align: center;
}
.python-quest img{
    /*
    width:auto;
    */
    width:85%;
    height:auto;
}
.python-quest figcaption{
    color:red;
    margin-bottom:1em;
}
.sequel img{
    /*
    width:auto;
    */
    width:30%;
    height:auto;
}
.sequel figcaption{
    color:#000;
    margin-bottom:1em;
}
.cover img{
    /*
    width:auto;
    */
    width:30%;
    height:auto;
}
.cover figcaption{
    color:#000;
    margin-bottom:1em;
}


.toggle{
    font-size:0.6em;
    margin-left:1em;
    padding:0.1em 0.4em;
    border:1px solid #070;
    background-color:#dfd;
    border-radius:6px;
    cursor:pointer;
    user-select:none;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
}
nav.toc{
    display:none;
}
nav.toc > ol{
    background-color:#fff;
    padding:0.8em 0.3em 0.8em 0.3em;
    border:solid 1px #ccc;
    border-radius:0.5em;
}
nav.toc > ol > li{
    margin-bottom:1em;
    /*
    list-style-type:disc;
    */
}
nav.toc > ol > li > a{
    padding:0.1em 0.8em;
    font-weight:bold;
    display:block;
    color:#000;
    border-bottom:solid 1px #ccc;
}
nav.toc a{
    color:#000;
    text-decoration:none;
    display:inline-block;
    margin-bottom:0.2em;
}
#amazon{
    /*
    */
    display:flex;
    display:none;
    flex-direction:column;
    width:200px;
    margin:2em auto;
}
#amazon h4{
    margin:0 auto;
    text-align:center;
}
#amazon div{
    display:flex;
    flex-direction:column;
}
#amazon figure{
    padding:10px;
    background-color: #fff;
    margin-bottom:2em;
}
#amazon img{
    display:block;
    width:80px;
    height:auto;
    margin:0 auto;
    text-align:center;
}

/**
 * responsive
 */
@media screen and (max-width:900px){
    #container{
        flex-direction:column;
    }
    nav#menu{
        flex-direction:row;
        text-align:left;
        width:auto;
    }
    nav#menu ul, nav ol, nav il{
        list-style:disc;
    }
    #main{
        padding:20px;
    }
    #amazon div{
        flex-direction:row;
    }
}
@media screen and (max-width:640px){
    nav#menu #image {
        padding: 6px;
    }
    nav#menu {
        flex-direction: column;
        align-items: center;
        width: 100%;
    }
    #main{
        padding:5px;
    }
    #main > div, #main > div > div {
        margin: 0 0 20px 0;
    }
    p {
        padding: 0;
    }
    blockquote > h4 {
        margin: 0.2em 0;
    }
    .sequel img {
        width: 70%;
    }
    .cover img {
        width: auto;
        height: auto;
    }
    .python-quest img {
        width: 95%;
        height: auto;
    }
}