
@charset "UTF-8";

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
全ページ共通
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
html {
  font-size: 62.5%; }

body {
  font-family: 'Noto Sans JP',YuGothic, 'Yu Gothic medium', 'Hiragino Sans', Meiryo, 'sans-serif';
  font-size: 1.6rem;
  color: #333;
  letter-spacing: 2px; }
  @media screen and (max-width: 1023px) {
    body {
      font-size: 1.4rem; } }

*:hover {
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s; }

/* 文字 */
p {
  margin: 40px 0; }

a {
  color: #333;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s; }
  a:hover {
    color: #e5deb2; }

/* 見出し */
h1, h2, h3, h4 {
  font-family: 'Sacramento', 'Noto Sans JP',YuGothic, 'Yu Gothic medium', 'Hiragino Sans', Meiryo, 'sans-serif';
  letter-spacing: 4px;
  font-weight: normal; }

h1 {
  font-size: 5rem; }

h2 {
  position: relative;
  font-size: 4rem;
  margin-bottom: 40px;
  padding-left: 36px; }
  @media screen and (max-width: 1023px) {
    h2 {
      left: -20px; } }
  h2::before {
    position: absolute;
    left: 0;
    content: "";
    display: block;
    width: 80px;
    height: 100%;
    background: url("../img/heart.svg") center bottom no-repeat;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg); }
    @media screen and (max-width: 1023px) {
      h2::before {
        background: url("../img/heart.svg") 30% bottom no-repeat; } }
  h2 span {
    position: relative;
    font-size: 1.4rem;
    color: #e49e9a;
    letter-spacing: 2px; }
    @media screen and (max-width: 1023px) {
      h2 span {
        display: block; } }
    h2 span::before {
      content: "";
      display: inline-block;
      width: 2rem;
      height: 1px;
      background: #e49e9a;
      margin-bottom: 4px;
      margin-right: 8px; }
  h2.ja {
    font-size: 3rem; }

h3 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 3rem;
  margin: 40px 0 20px; }
  h3::after {
    content: "";
    display: block;
    height: 1px;
    background: #e5deb2;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-left: 20px; }
  h3.ja {
    font-size: 2.2rem; }

h4 {
  font-size: 2.4rem;
  margin: 20px 0; }
  h4.ja {
    font-size: 1.8rem; }

/* 強調 */
em {
  font-style: normal;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(228, 158, 154, 0.4)), to(rgba(228, 158, 154, 0.4))) 0 100%/100% 8px no-repeat;
  background: -o-linear-gradient(rgba(228, 158, 154, 0.4), rgba(228, 158, 154, 0.4)) 0 100%/100% 8px no-repeat;
  background: linear-gradient(rgba(228, 158, 154, 0.4), rgba(228, 158, 154, 0.4)) 0 100%/100% 8px no-repeat; }

/* フォーム系 */
label {
  display: block;
  color: #e5deb2;
  font-weight: bold;
  margin: 10px 0; }

input {
  margin: 10px 0; }

input, textarea {
  padding: 8px;
  max-width: 100%;
  border: 1px solid #e5deb2; }

input[type="submit"] {
  display: inline-block;
  cursor: pointer; }

.btn {
  display: inline-block;
  padding: 4px 8px;
  color: #fff;
  background-color: #e49e9a;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
  text-decoration: none;
  border: 2px solid rgba(228, 158, 154, 0.4);
  transition: 0.2s; }
  .btn:hover {
    background-color: rgba(228, 158, 154, 0.4);
    border: 2px solid #e49e9a;
    color: #333;
    cursor: pointer;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s; }

/* レイアウト */
.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.grid {
  display: -ms-grid;
  display: grid;
  grid-gap: 20px;
  -ms-grid-columns: 1fr 1fr;
  grid-template-columns: 1fr 1fr; }
  @media screen and (max-width: 1365px) {
    .grid {
      -ms-grid-columns: 1fr;
      grid-template-columns: 1fr; } }


.gridlist {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto 1fr;
  grid-template-columns: auto 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .gridlist dt, .gridlist dd {
    margin: 10px 0; }
  .gridlist dt {
    color: #e5deb2;
    font-weight: bold;
    margin-right: 20px; }

.yokolist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .yokolist li {
    margin-right: 20px; }
    .yokolist li:last-child {
      margin-right: 0; }

/*装飾*/
.label {
  display: inline-block;
  padding: 4px 8px;
  margin: 20px 0;
  background: rgba(228, 158, 154, 0.4); }

.hr {
  margin-bottom: 80px; }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
Index
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
.index {
  background: url("../img/index.png") center center no-repeat;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100vh; }
  @media screen and (max-width: 1023px) {
    .index {
      background-size: cover; } }

  .index-wrapper {
    display: inline-block;
    background: rgba(229, 222, 178, 0.8);
    padding: 88px; }
    @media screen and (max-width: 1023px) {
      .index-wrapper {
        background: none;
        padding: 40px; } }

    .index-wrapper h1 {
      margin-bottom: 44px;
      letter-spacing: 12px; }

    .index-wrapper .enter {
      margin-top: 80px;
      font-weight: bold;
      text-align: center; }
      .index-wrapper .enter a {
        color: #333;
        text-decoration: none;
        position: relative; }
        .index-wrapper .enter a::after {
          opacity: 0;
          -webkit-transition: 0.2s;
          -o-transition: 0.2s;
          transition: 0.2s;
          position: absolute;
          bottom: -30px;
          left: calc(50% - 12px);
          content: "";
          display: block;
          width: 24px;
          height: 24px;
          background: url("../img/heart.svg") no-repeat; }
        .index-wrapper .enter a:hover::after {
          opacity: 1;
          -webkit-transition: 0.2s;
          -o-transition: 0.2s;
          transition: 0.2s; }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
バラの写真
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
.rose {
  position: fixed;
  left: -10px;
  top: -10px;
  max-width: 16%;
  z-index: 3; }
  .rose img {
    max-height: 78vh;
    -o-object-fit: contain;
       object-fit: contain; }
  @media screen and (max-width: 1023px) {
    .rose {
      display: none; } }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
サイト名　メニュー
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
/* メニューボタン */
.menubtn {
  position: fixed;
  top: 50px;
  right: 10px;
  border: 0;
  outline: none;
  z-index: 3;
  width: 44px;
  height: 44px;
  padding: 6px;
  background: none; }
  @media screen and (min-width: 1024px) {
    .menubtn {
      display: none; } }
  .menubtn span:first-of-type, .menubtn span:nth-of-type(2) {
    position: fixed;
    top: 58px;
    right: 16px;
    display: block;
    width: 32px;
    height: 4px;
    background: #e49e9a;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s; }
  .menubtn span:nth-of-type(2) {
    top: 66px; }
  .menubtn span:last-of-type {
    position: fixed;
    top: 74px;
    right: 17px;
    font-size: 1.1rem;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .menubtn.is-active span:first-of-type {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
    top: 70px;
    right: 15px; }
  .menubtn.is-active span:nth-of-type(2) {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg);
    top: 70px;
    right: 15px; }
  .menubtn.is-active span:last-of-type {
    opacity: 0; }

/* 左側 */
header {
  position: fixed;
  left: 10%;
  max-width: 15%;
  min-width: 240px;
  height: 100vh;
  background: -o-radial-gradient(#e5deb2 0, #e5deb2 15%, rgba(0, 0, 0, 0) 16%, rgba(0, 0, 0, 0) 100%), -o-radial-gradient(#e5deb2 15%, rgba(0, 0, 0, 0) 16%), white;
  background: radial-gradient(#e5deb2 0, #e5deb2 15%, rgba(0, 0, 0, 0) 16%, rgba(0, 0, 0, 0) 100%), radial-gradient(#e5deb2 15%, rgba(0, 0, 0, 0) 16%), white;
  background-position: 0 0, 20px 20px;
  background-size: 40px 40px;
  z-index: 2; }
  @media screen and (max-width: 1023px) {
    header {
      left: 0;
      max-width: 100%;
      min-width: none;
      width: 100%;
      height: 110px; } }
  header::before {
    position: absolute;
    left: 20px;
    content: "";
    display: block;
    width: 6px;
    height: 100vh;
    background: #e5deb2; }
    @media screen and (max-width: 1023px) {
      header::before {
        height: 100%; } }

  /* サイト名 */
  header h1 {
    position: fixed;
    left: 0;
    bottom: 40px;
    background: rgba(229, 222, 178, 0.7);
    padding: 10px 20px 10px 40px;
    -webkit-transform: rotate(-8deg) translateX(-20px);
        -ms-transform: rotate(-8deg) translateX(-20px);
            transform: rotate(-8deg) translateX(-20px);
    font-size: 4rem;
    z-index: 4; }
    header h1 a {
      text-decoration: none;
      -webkit-transition: 0.2s;
      -o-transition: 0.2s;
      transition: 0.2s; }
      header h1 a:hover {
        color: #fff; }
    @media screen and (max-width: 1023px) {
      header h1 {
        bottom: auto; } }

  /* メニュー */
  header ul.menu li {
    background: rgba(229, 222, 178, 0.7);
    margin: 10px 0;
    -webkit-transform: rotate(-8deg);
        -ms-transform: rotate(-8deg);
            transform: rotate(-8deg); }
    header ul.menu li.active {
      background: rgba(255, 255, 255, 0.8); }
    header ul.menu li:hover {
      background: rgba(255, 255, 255, 0.8); }
    header ul.menu li a {
      display: block;
      font-size: 3rem;
      font-family: 'Sacramento', cursive;
      text-decoration: none;
      padding: 10px;
      padding-left: 100px; }
  @media screen and (max-width: 1023px) {
    header ul.menu {
      position: fixed;
      top: 0;
      left: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      background: rgba(255, 255, 255, 0.8);
      width: 100%;
      height: 100%;
      opacity: 0;
      -webkit-transform: translateX(100%);
          -ms-transform: translateX(100%);
              transform: translateX(100%);
      -webkit-transition: 0.6s;
      -o-transition: 0.6s;
      transition: 0.6s; }
      header ul.menu.is-active {
        opacity: 1;
        -webkit-transform: translateX(0);
            -ms-transform: translateX(0);
                transform: translateX(0);
        -webkit-transition: 0.6s;
        -o-transition: 0.6s;
        transition: 0.6s; }
      header ul.menu li {
        margin: 10px; } }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
コンテンツ部分
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
main:not(.index) {
  margin-left: calc(8% + 300px);
  padding: 40px; }
  @media screen and (min-width: 415px) and (max-width: 1023px) {
    main:not(.index) {
      margin: 0;
      padding: 20px;
      padding-top: 104px; } }
  @media screen and (max-width: 414px) {
    main:not(.index) {
      margin: 0;
      padding: 10px;
      padding-top: 104px; } }

section {
  margin: 40px 0 80px;
  padding-bottom: 80px;
  border-bottom: 8px dotted #e5deb2; }
  @media screen and (max-width: 1023px) {
    section {
      margin: 20px 0 40px;
      padding: 20px;
      padding-bottom: 60px; } }

/* 更新記録 */
.news ul {
  height: 120px;
  overflow: auto; }
  .news ul li {
    margin: 10px 0; }
    .news ul li time {
      color: #e5deb2;
      font-weight: bold;
      margin-right: 20px; }
      @media screen and (max-width: 1023px) {
        .news ul li time {
          display: block; } }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
Novel
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
/* もくじ */
.novellist {
  width: 90%; }
  .novellist ul li {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: auto 1fr 180px;
    grid-template-columns: auto 1fr 180px; }
    @media screen and (max-width: 1023px) {
      .novellist ul li {
        -ms-grid-columns: 1fr;
        grid-template-columns: 1fr; } }
    .novellist ul li div:first-of-type {
      font-weight: bold; }
    .novellist ul li div:nth-of-type(2) {
      position: relative;
      margin: 0 20px 0; }
      @media screen and (max-width: 1023px) {
        .novellist ul li div:nth-of-type(2) {
          display: none; } }
      .novellist ul li div:nth-of-type(2)::after {
        position: absolute;
        top: 12px;
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        border-bottom: 4px dotted #e5deb2; }
    .novellist ul li div:nth-of-type(3) ul li {
      margin-bottom: 10px; }

/*名前変換*/
.namechange {
  padding: 40px;
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content;
  border: 2px solid #e49e9a; }
  @media screen and (max-width: 1023px) {
    .namechange {
      width: 300px;
      padding: 20px; } }

/* 小説一覧 */
.novelgroup {
  margin-bottom: 60px; }

.noveltitle {
  font-size: 2rem; }

/* 小説ページ */
.story {
  margin: 0 auto;
  max-width: 1024px; }
  .story p {
    text-align: justify; }
  @media screen and (max-width: 1023px) {
    .story {
      padding: 20px; } }

/* あとがき欄 */
.afterword {
  width: 80%;
  padding: 1px 40px;
  margin: 80px 0;
  background-color: rgba(229, 222, 178, 0.8); }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
Gallery
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
/* イラスト　画像サムネイル */
.illust-thumb {
  display: -ms-grid;
  display: grid;
  grid-template-columns: repeat(auto-fit, 132px);
  grid-gap: 20px; }
  .illust-thumb img {
    width: 132px;
    height: 132px;
    -o-object-fit: cover;
       object-fit: cover;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s; }
    .illust-thumb img:hover {
      -webkit-filter: saturate(40%);
              filter: saturate(40%); }

/* 画像表示　メニュー表示調整 */
#spotlight .header {
  padding: 0 40px; }
  @media screen and (max-width: 1023px) {
    #spotlight .header {
      padding: 0 5px; } }
  #spotlight .header div {
    margin: 0 5px;
    padding: 0; }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
　リンク
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
.link li img {
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s; }
  .link li img:hover {
    opacity: 0.6; }

.link .gridlist {
  -ms-grid-columns: 200px 20px 1fr;
  grid-template-columns: 200px 1fr;
  grid-gap: 20px;
  margin-bottom: 20px; }
  @media screen and (max-width: 1023px) {
    .link .gridlist {
      -ms-grid-columns: 1fr;
      grid-template-columns: 1fr; } }

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
メール
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
.mail input {
  width: 400px; }

.mail textarea {
  width: 600px; }

.mail input[type="submit"] {
  width: -webkit-min-content;
  width: -moz-min-content;
  width: min-content; }

@media screen and (max-width: 1023px) {
  .mail {
    width: 100%; }
    .mail input {
      width: 100%; }
    .mail textarea {
      width: 100%; } }


/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
フッター
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
footer {
  margin-left: calc(8% + 300px);
  padding: 20px;
  text-align: center; }
  @media screen and (max-width: 1023px) {
    footer {
      margin: 0; } }
