@charset "UTF-8";
html {
  scroll-padding-top: 20px; }

#mirai2025 h2 {
  display: flex;
  align-items: center; }
  #mirai2025 h2:before {
    margin-right: 0.5rem;
    font-family: 'FontAwesome'; }
#mirai2025 h3 {
  margin: 0 0 3rem 0;
  padding: 0 0 3rem 0;
  text-align: center;
  border-bottom: 1px #ccc solid; }
  #mirai2025 h3 br {
    display: none; }
  #mirai2025 h3 > picture img {
    width: 100%;
    margin: 0 0 3rem 0; }
  #mirai2025 h3 + cite {
    display: block;
    margin: -3rem 0 4rem 0;
    padding: 1rem 1rem 0.65rem 1rem;
    font-style: normal;
    text-align: right;
    background: #f3f3f3; }
  #mirai2025 h3.nosubtitle {
    padding: 0;
    border: none; }
#mirai2025 h4.mt50 {
  margin-top: 50px; }
#mirai2025 section {
  margin-bottom: 50px;
  padding: 0; }
#mirai2025 a[target]:after {
  content: "\f2d2";
  padding: 0 0.25rem;
  font-family: "fontawesome"; }
#mirai2025 sup {
  padding: 0 0.25rem 0 0.125rem; }
#mirai2025 figure {
  margin: 2rem 0; }
  #mirai2025 figure img {
    width: 100%;
    margin: 0 0 0.5rem 0; }
    #mirai2025 figure img.w70 {
      display: block;
      margin: 1rem auto; }
  #mirai2025 figure figcaption {
    color: #333;
    font-size: 0.75rem; }
    #mirai2025 figure figcaption cite {
      font-style: italic; }
#mirai2025 aside {
  padding: 1rem 2rem 2rem 2rem; }
  #mirai2025 aside h3 {
    margin: 1rem 0;
    padding: 0;
    text-align: left;
    border: none; }
  #mirai2025 aside nav h4 {
    margin: 0;
    padding: 2rem 1.75rem 0 2rem;
    font-size: 1.125rem;
    font-weight: bold; }
    #mirai2025 aside nav h4 a {
      display: inline-block;
      padding-left: 1rem;
      position: relative; }
      #mirai2025 aside nav h4 a:before {
        content: "■";
        top: 0;
        left: -0.4rem;
        position: absolute;
        transform: scaleY(0.5); }
    #mirai2025 aside nav h4.here {
      margin-top: 0.65rem;
      font-weight: bold; }
      #mirai2025 aside nav h4.here span {
        display: flex;
        gap: 0.125rem; }
        #mirai2025 aside nav h4.here span:before {
          content: "\f041";
          margin: -1px 0 0 -1px;
          padding: 0.25rem 0.5rem 0 0;
          color: #c14;
          font-family: "fontawesome";
          text-decoration: none; }
    #mirai2025 aside nav h4 br {
      display: none; }
  #mirai2025 aside nav > ul {
    padding: 1rem;
    font-size: 0.875rem; }
    #mirai2025 aside nav > ul > li {
      margin: 0.5rem 0 0.5rem 1rem;
      padding: 0;
      text-indent: inherit; }
      #mirai2025 aside nav > ul > li > p {
        display: flex;
        margin: 0;
        align-items: center; }
      #mirai2025 aside nav > ul > li > ul {
        margin: 1rem 0;
        padding: 0;
        font-size: 0.875rem; }
        #mirai2025 aside nav > ul > li > ul > li {
          margin: 0.5rem 0 0.5rem 1rem;
          padding: 0;
          text-indent: inherit; }
          #mirai2025 aside nav > ul > li > ul > li > p {
            display: flex;
            margin: 0;
            align-items: center; }
          #mirai2025 aside nav > ul > li > ul > li a {
            display: flex;
            align-items: center; }
    #mirai2025 aside nav > ul .here {
      margin-top: 0.65rem;
      font-weight: bold; }
      #mirai2025 aside nav > ul .here :before {
        content: "\f041";
        margin: -3px 0 0 -1px;
        padding: 0 0.5rem 0 0;
        color: #c14;
        font-family: "fontawesome";
        font-size: 1rem;
        text-decoration: none;
        vertical-align: 0; }
    #mirai2025 aside nav > ul .soon {
      display: inline-block;
      margin: 0 0.5rem 0 0;
      padding: 0.25rem 0.5rem 0.15rem 0.5rem;
      color: #fff;
      font-weight: bold;
      background: #777; }
#mirai2025 .floatBlock {
  overflow: hidden; }
  #mirai2025 .floatBlock.floatL > div:nth-of-type(1) {
    margin-right: 1rem;
    float: left; }
  #mirai2025 .floatBlock.floatR > div:nth-of-type(1) {
    margin-left: 1rem;
    float: right; }
  #mirai2025 .floatBlock > div:nth-of-type(1) {
    width: calc(25% - 1rem);
    margin-bottom: 1rem; }
    #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) {
      width: calc(25% - 1rem);
      margin-bottom: 1rem; }
      #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) img {
        width: 100%;
        margin: 0; }
      #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div {
        padding: 0.75rem;
        color: #fff;
        background: #333; }
        #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div p {
          margin: 0;
          font-size: 0.625rem;
          line-height: 1.5; }
        #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div .name {
          margin: 0.5rem 0 0 0;
          font-size: 1.125rem;
          font-weight: bold; }
          #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div .name + p {
            margin: 0 0 1rem 0; }
          #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div .name span {
            font-size: 0.625rem; }
          #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div .name ruby {
            ruby-position: under; }
            #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div .name ruby rt {
              margin-top: 0.125rem;
              padding-bottom: 0.5rem; }
        #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) > div .introduction {
          margin-top: 0.5rem;
          word-break: normal; }
  #mirai2025 .floatBlock figure {
    width: 70%; }
#mirai2025 .commentary li {
  color: #000;
  font-size: 0.875rem; }
#mirai2025 .bgBlue {
  background: #eef9ff; }
#mirai2025 .bgGray {
  background: #eee; }
#mirai2025 .bgBlue, #mirai2025 .bgGray {
  padding: 1rem; }
  #mirai2025 .bgBlue > .commentary, #mirai2025 .bgGray > .commentary {
    margin-top: 0;
    margin-bottom: 0; }
    #mirai2025 .bgBlue > .commentary li:last-child, #mirai2025 .bgGray > .commentary li:last-child {
      margin-bottom: 0; }
#mirai2025 .authorBlock {
  margin-top: 60px; }
  #mirai2025 .authorBlock > div {
    display: flex;
    gap: 2rem; }
    #mirai2025 .authorBlock > div > div:nth-of-type(1) img {
      width: 100%;
      margin: 0; }
    #mirai2025 .authorBlock > div > div:nth-of-type(1) > div {
      padding: 1rem 1rem 0.25rem 1rem;
      color: #fff;
      background: #333; }
      #mirai2025 .authorBlock > div > div:nth-of-type(1) > div p {
        margin: 0;
        font-size: 0.875rem;
        line-height: 1.25; }
      #mirai2025 .authorBlock > div > div:nth-of-type(1) > div .name {
        margin: 0.5rem 0 0 0;
        font-size: 1.125rem;
        font-weight: bold; }
        #mirai2025 .authorBlock > div > div:nth-of-type(1) > div .name ruby {
          ruby-position: under; }
          #mirai2025 .authorBlock > div > div:nth-of-type(1) > div .name ruby rt {
            margin-top: 0.125rem;
            padding-bottom: 0.5rem; }

@media screen and (max-width: 500px) {
  #mirai2025 h3 br {
    display: block; }
  #mirai2025 h3 + cite {
    margin-top: 0; }
  #mirai2025 .commentary li:before {
    margin-left: -2.25rem; }
  #mirai2025 .floatBlock.floatL > div:nth-of-type(1) {
    margin-right: 0;
    float: none; }
  #mirai2025 .floatBlock.floatR > div:nth-of-type(1) {
    margin-left: 0;
    float: none; }
  #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) {
    width: 100%;
    margin-bottom: 1rem; }
    #mirai2025 .floatBlock > div:nth-of-type(1).author:nth-of-type(1) img {
      width: 33.3%;
      margin: 0 0 1rem 1rem;
      float: right; }
  #mirai2025 .floatBlock figure {
    width: 100%; }
  #mirai2025 aside {
    padding: 0.5rem 1rem 1rem 1rem; }
    #mirai2025 aside h3 {
      margin: 1rem 0;
      padding: 0;
      text-align: left;
      border: none; }
    #mirai2025 aside nav h4 br {
      display: block; }
    #mirai2025 aside nav > ul {
      padding: 0.5rem; }
      #mirai2025 aside nav > ul > li > p {
        align-items: center; }
      #mirai2025 aside nav > ul > li > ul > li > p {
        align-items: center; }
      #mirai2025 aside nav > ul > li > ul > li a {
        align-items: flex-start; }
      #mirai2025 aside nav > ul .here p {
        align-items: flex-start; }
  #mirai2025 .authorBlock > div > div:nth-of-type(1) {
    display: flex;
    width: 100%;
    margin-bottom: 1rem;
    color: #fff;
    background: #333;
    align-items: center; }
    #mirai2025 .authorBlock > div > div:nth-of-type(1) img {
      width: 35%;
      margin: 0; }
    #mirai2025 .authorBlock > div > div:nth-of-type(1) > div {
      padding: 1rem;
      text-align: center;
      flex: 1; } }
