*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

* {
  font-feature-settings: "palt";
}

html, body {
  line-height: 1.2;
  font-family: "Kiwi Maru", sans-serif;
  background: #e0d3c3;
}

header h1 img {
  width: 50%;
  max-width: 400px;
  margin: 30px auto;
}

.rmn {
  position: relative;
  max-width: 1000px;
  height: auto;
  aspect-ratio: 1;
  margin: 0 auto;
}

.rmn .rmn-stack {
  position: relative;
  width: 100%;
  height: 100%;
}

.rmn .rmn-stack .rmn-bg-color {
  position: absolute;
  left: 5%;
  top: 5%;
  width: 90%;
  height: 90%;
}

.rmn .rmn-stack .rmn-bg-color.bg-night {
  background: #080051;
}
.rmn .rmn-stack .rmn-bg-color.bg-morning {
  background: #5071bc;
}
.rmn .rmn-stack .rmn-bg-color.bg-afternoon {
  background: #52bbe8;
}
.rmn .rmn-stack .rmn-bg-color.bg-evening {
  background: #fcae78;
}



.rmn .rmn-stack img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.rmn .info-clock {
  position: absolute;
  width: 50%;
  left: 25%;
  top: 1%;
  text-align: center;
  font-size: calc(min(100vw, 1000px)/35);
}
.rmn .info-clock small {
  display: block;
  font-size: 0.9em;
}
.rmn .info-clock span {
  display: block;
  margin: 1% 0 0;
  font-size: 1.2em;
}

.rmn .info-packet,
.rmn .info-device {
  position: absolute;
  width: 30%;
  padding: 3% 0;
  aspect-ratio: 1;
  text-align: center;
  font-size: calc(min(100vw, 1000px)/40);
}

.rmn .info-packet {
  top: 2%;
  left: 2%;
  background: url("img/rmn-info-l.png") center center no-repeat;
  background-size: 100%;
}
.rmn .info-device {
  top: 2%;
  right: 2%;
  background: url("img/rmn-info-r.png") center center no-repeat;
  background-size: 100%;
}
.rmn .info-packet dl dt,
.rmn .info-device dl dt {
  padding: 10% 0 3px;
}
.rmn .info-packet dl dd,
.rmn .info-device dl dd {
  display: block;
  font-weight: bold;
}
.rmn .info-packet b,
.rmn .info-device b {
  font-size: 1.5em;
  padding: 0 2%;
}

.rmn .info-packet > div,
.rmn .info-device > div {
  padding: 15% 0 0;
}
.rmn .info-packet div span,
.rmn .info-device div span {
  display: block;
  font-size: 1em;
  padding: 3% 0;
}

.rmn .info-packet img,
.rmn .info-device img {
  position: relative;
  display: inline-block;
  width: 20%;
  height: 20%;
  margin: 0 3% 0 0;
}

.rmn .summary * {
  vertical-align: middle;
}

.rmn .detail,
.rmn.clicked .summary {
  display: none;
}
.rmn.clicked .detail,
.rmn .summary {
  display: block;
}

.rmn .sleep-msg {
  display: none;
}

.rmn.sleep div.info-packet {
  display: none;
}
.rmn.sleep div.info-device .summary,
.rmn.sleep div.info-device .detail {
  display: none;
}
.rmn.sleep div.info-device .sleep-msg {
  display: block;
  font-size: 1.3em;
  line-height: 4.5em;
}

div.about-app {
  text-align: center;
  padding: 10px 20px;
}

div.about-app h2 {
  font-size: 1.2rem;
  margin: 0 0 10px;
}
div.about-app p {
  max-width: 500px;
  padding: 5px 0;
  margin: 0 auto;
  font-size: 0.9rem;
}
div.about-app div.footnote {
  margin: 20px 0;
  padding: 15px 15px 20px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-width: 1px 0;
  font-size: 0.8rem;
}

div.log {
  padding: 10px;
  text-align: center;
}

div.log h2 {
  font-size: 1.2rem;
  margin: 0 0 10px;
}

div.log p {
  font-size: 0.8rem;
  max-width: 500px;
  padding: 5px 10px;
  margin: 0 auto;
}

div.log ul  {
  font-size: 0.8rem;
  padding: 0 20px;
}

div.log ul li {
  list-style: none;
  padding: 0 0 8px;
  line-height: 1em;
}

div.log ul li * {
  vertical-align: middle;
}

div.log ul li time {
  font-size: 0.6rem;
  display: block;
  padding: 0 0 2px;
}

div.log ul li img {
  position: relative;
  top: -1px;
  display: inline-block;
  width: 14px;
  height: 14px;
  margin: 0 5px;
}

div.log ul li time + img {
  margin: 0 5px 0 0;
}

div.log ul li span {
  padding: 0 2px;
  font-size: 0.7em;
  margin: 0 5px 0 0;
}




footer {
  padding: 10px 20px 30px;
  text-align: center;
  font-size: 0.8rem;
}
footer small {
  display: block;
  font-size: 0.6rem;
  opacity: 0.8;
}
