:root{
  --km-night:#10133a;
  --km-navy:#1a1f4d;
  --km-blue-deep:#2d3a8c;
  --km-violet:#6b5fc0;
  --km-violet-soft:#9c90e0;
  --km-gold:#f5e3a8;
  --km-pink:#eeb6d0;
  --km-green:#a8d8bd;
  --km-blue:#9fc4ee;
  --km-text:#dfe3f5;
  --km-text-strong:#f3f4fb;
  --km-text-dim:#a7adcf;
  --km-surface:#1e2456;
  --km-surface-2:#262d68;
  --km-line:rgba(255,255,255,.10);
  --km-shadow:0 10px 30px rgba(0,0,0,.30);
  --km-glow:0 0 24px rgba(108,95,192,.28);
  --km-dream:var(--dream,var(--dream-grad,linear-gradient(100deg,#9fc4ee 0%,#b9a8e6 32%,#eeb6d0 64%,#f5e3a8 100%)));
  --km-mincho:'Shippori Mincho','Noto Serif JP',serif;
  --km-gothic:'Zen Maru Gothic','Noto Sans JP',sans-serif;
  --km-mont:'Montserrat','Inter',sans-serif;
  --km-r:14px;
  --km-r-sm:10px;
  --km-r-full:999px;
}

.km-article{
  font-family:var(--km-gothic);
  color:var(--km-text);
  font-size:17px;
  line-height:1.95;
  letter-spacing:.02em;
  font-weight:400;
}
@media (min-width:768px){
  .km-article{font-size:18px;}
}
.km-article p{margin:0 0 1.6em;}
.km-article a{
  color:var(--km-blue);
  text-decoration:none;
  border-bottom:1px solid rgba(159,196,238,.35);
  transition:color .2s ease,border-color .2s ease;
}
.km-article a:hover{color:#bcd6f4;border-bottom-color:var(--km-blue);}
.km-article strong{font-weight:500;color:var(--km-text-strong);}
.km-article ul{list-style:none;margin:0 0 1.6em;padding:0;}
.km-article ul li{position:relative;padding-left:1.5em;margin:0 0 .6em;}
.km-article ul li::before{
  content:"";
  position:absolute;
  left:.2em;
  top:.72em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--km-dream);
  box-shadow:0 0 8px rgba(159,196,238,.5);
}
.km-article ol{list-style:none;counter-reset:km;margin:0 0 1.6em;padding:0;}
.km-article ol li{position:relative;padding-left:2em;margin:0 0 .6em;counter-increment:km;}
.km-article ol li::before{
  content:counter(km);
  position:absolute;
  left:0;
  top:.05em;
  font-family:var(--km-mont);
  font-weight:600;
  font-size:.82em;
  color:var(--km-gold);
}

.km-article h2{
  font-family:var(--km-mincho);
  font-weight:500;
  font-size:25px;
  line-height:1.5;
  letter-spacing:.04em;
  color:var(--km-text-strong);
  margin:2.6em 0 1em;
  padding-left:30px;
  position:relative;
}
@media (min-width:768px){
  .km-article h2{font-size:28px;}
}
.km-article h2::before{
  content:"";
  position:absolute;
  left:0;
  top:.18em;
  width:22px;
  height:22px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cdefs%3E%3ClinearGradient id='kmDream' x1='0' y1='0' x2='22' y2='22'%3E%3Cstop offset='0' stop-color='%239fc4ee'/%3E%3Cstop offset='.5' stop-color='%23eeb6d0'/%3E%3Cstop offset='1' stop-color='%23f5e3a8'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M14.8 2.6a8.5 8.5 0 1 0 4.6 15.6A7.6 7.6 0 0 1 14.8 2.6z' fill='url(%23kmDream)'/%3E%3Cpath d='M18.1 2.7l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6z' fill='%23f5e3a8'/%3E%3C/svg%3E") no-repeat center/contain;
}
.km-article h2::after{
  content:"";
  display:block;
  margin-top:.4em;
  width:60%;
  height:1px;
  border-radius:var(--km-r-full);
  background:var(--km-dream);
  opacity:.4;
}
.km-article h3{
  font-family:var(--km-gothic);
  font-weight:500;
  font-size:19px;
  line-height:1.55;
  color:var(--km-text-strong);
  margin:2.2em 0 .8em;
  padding-left:14px;
  position:relative;
}
@media (min-width:768px){
  .km-article h3{font-size:20px;}
}
.km-article h3::before{
  content:"";
  position:absolute;
  left:0;
  top:.18em;
  bottom:.18em;
  width:3px;
  border-radius:var(--km-r-full);
  background:var(--km-dream);
}

.km-mark{
  background-image:linear-gradient(100deg,rgba(159,196,238,.30),rgba(238,182,208,.30),rgba(245,227,168,.34));
  background-repeat:no-repeat;
  background-size:100% 42%;
  background-position:0 84%;
  padding:0 .1em;
  border-radius:3px;
  color:var(--km-text-strong);
}

.km-nemu{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin:2em 0;
}
.km-nemu__icon{
  flex-shrink:0;
  width:64px;
  height:64px;
  border-radius:50%;
  overflow:hidden;
  background:var(--km-navy);
  box-shadow:0 0 26px rgba(108,95,192,.42);
}
.km-nemu__icon img{width:100%;height:100%;object-fit:cover;display:block;}
.km-nemu__bubble{
  position:relative;
  flex:1;
  min-width:0;
  background:#262d68;
  border:1px solid rgba(159,196,238,.24);
  border-radius:var(--km-r);
  padding:16px 18px;
  box-shadow:var(--km-shadow),0 0 30px rgba(108,95,192,.28);
}
.km-nemu__bubble::before{
  content:"";
  position:absolute;
  left:-9px;
  top:20px;
  width:0;
  height:0;
  border:9px solid transparent;
  border-right-color:#262d68;
  border-left:0;
}
.km-nemu__name{
  display:inline-block;
  font-family:var(--km-gothic);
  font-weight:500;
  font-size:13px;
  color:var(--km-gold);
  margin-bottom:.3em;
  letter-spacing:.04em;
}
.km-nemu__bubble p{margin:0;font-size:16px;line-height:1.9;color:var(--km-text);}
@media (max-width:600px){
  .km-nemu__icon{width:52px;height:52px;}
  .km-nemu__bubble{padding:14px 15px;}
}

.km-box{
  margin:2em 0;
  padding:18px 20px;
  border-radius:var(--km-r);
  border:1px solid var(--km-line);
  background:var(--km-surface);
  box-shadow:var(--km-shadow);
}
.km-box__label{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--km-gothic);
  font-weight:500;
  font-size:14px;
  letter-spacing:.04em;
  margin:0 0 .6em;
}
.km-box__label svg{flex-shrink:0;width:18px;height:18px;}
.km-box__body{font-size:16px;line-height:1.9;color:var(--km-text);}
.km-box__body :last-child{margin-bottom:0;}
.km-point{background:rgba(245,227,168,.07);border-color:rgba(245,227,168,.30);}
.km-point .km-box__label{color:var(--km-gold);}
.km-note{background:rgba(168,216,189,.07);border-color:rgba(168,216,189,.30);}
.km-note .km-box__label{color:var(--km-green);}
.km-cite{
  background:rgba(159,196,238,.06);
  border-color:rgba(159,196,238,.28);
}
.km-cite .km-box__label{color:var(--km-blue);}
.km-cite__src{display:block;margin-top:.6em;font-size:12px;color:var(--km-text-dim);}

.km-table{position:relative;margin:2em 0;}
.km-article .km-table__scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  border-radius:var(--km-r);
}
.km-article .km-table__scroll::-webkit-scrollbar{display:none;}
.km-article .km-table table{
  width:100%;
  min-width:480px;
  display:table;
  border-collapse:separate;
  border-spacing:0;
  font-family:var(--km-gothic);
  font-size:15px;
  color:var(--km-text);
  background:var(--km-surface);
  border:1px solid var(--km-line);
  border-radius:var(--km-r);
  overflow:hidden;
}
.km-article .km-table thead{display:table-header-group;}
.km-article .km-table tbody{display:table-row-group;}
.km-article .km-table tr{display:table-row;}
.km-article .km-table th{
  display:table-cell;
  white-space:normal;
  vertical-align:top;
  background:var(--km-navy);
  color:var(--km-text-strong);
  font-weight:500;
  text-align:left;
  padding:12px 14px;
  letter-spacing:.03em;
  border-bottom:1px solid var(--km-line);
}
.km-article .km-table td{
  display:table-cell;
  white-space:normal;
  vertical-align:top;
  width:auto;
  min-width:0;
  padding:12px 14px;
  line-height:1.7;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:transparent;
}
.km-article .km-table tr:last-child td{border-bottom:0;}
.km-article .km-table tbody tr:nth-child(even){background:rgba(255,255,255,.025);}
.km-table::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:36px;
  pointer-events:none;
  border-radius:0 var(--km-r) var(--km-r) 0;
  background:linear-gradient(90deg,transparent,var(--km-night));
  opacity:0;
  transition:opacity .2s ease;
}
@media (max-width:600px){
  .km-table::after{opacity:1;}
  .km-article .km-table__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .km-article .km-table table{display:table!important;min-width:480px;width:100%;}
  .km-article .km-table thead{display:table-header-group!important;}
  .km-article .km-table tbody{display:table-row-group!important;}
  .km-article .km-table tr{display:table-row!important;}
  .km-article .km-table th,
  .km-article .km-table td{
    display:table-cell!important;
    width:auto!important;
    min-width:0!important;
    white-space:normal;
    vertical-align:top;
  }
}

.km-reveal{
  opacity:0;
  filter:blur(6px);
  transform:translateY(12px);
  transition:opacity .5s ease,filter .5s ease,transform .5s ease;
}
.km-reveal.is-visible{
  opacity:1;
  filter:blur(0);
  transform:none;
}
@media (prefers-reduced-motion:reduce){
  .km-reveal{opacity:1!important;filter:none!important;transform:none!important;transition:none!important;}
}
