:root{--nsl2-pink:#ff2d92;--nsl2-hot-pink:#ff0099;--nsl2-light-pink:#ffe6f2;--nsl2-soft-pink:#fff5fa;--nsl2-purple:#8a2be2;--nsl2-cyan:#22c7d9;--nsl2-text:#333;--nsl2-muted:#777;--nsl2-white:#fff;--nsl2-border:rgba(255,45,146,.22);--nsl2-shadow:0 10px 30px rgba(255,45,146,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f3f7;color:var(--nsl2-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.75}.nsl2-page{max-width:480px;margin:0 auto;background:var(--nsl2-white);box-shadow:0 0 50px rgba(70,30,60,.12);overflow:hidden}.nsl2-hero{min-height:680px;padding:58px 22px 40px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,245,250,.96)),url("../images/NSL2_bg.png") center/cover;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.nsl2-hero:after{content:"";position:absolute;inset:auto 0 0;height:100px;background:linear-gradient(transparent,#fff)}.nsl2-hero-logo{width:min(82%,350px);height:auto;filter:drop-shadow(0 12px 20px rgba(255,45,146,.18))}.nsl2-hero-copy{font-size:24px;font-weight:900;letter-spacing:.05em;margin-top:10px}.nsl2-hero-lead{font-size:14px;color:#5e5260;margin-top:8px}.nsl2-hero-period{margin-top:20px;color:var(--nsl2-hot-pink);font-size:19px;font-weight:900;letter-spacing:.06em}.nsl2-hero-period span{color:var(--nsl2-cyan);margin:0 5px}.nsl2-hero-tags,.nsl2-chip-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:13px}.nsl2-hero-tags span,.nsl2-chip-grid span{padding:5px 10px;border:1px solid var(--nsl2-border);border-radius:999px;background:rgba(255,255,255,.85);font-size:11px;font-weight:800}.nsl2-scroll-link{z-index:1;margin-top:25px;padding:11px 22px;border-radius:99px;background:linear-gradient(135deg,var(--nsl2-pink),var(--nsl2-hot-pink));color:#fff;text-decoration:none;font-weight:800;font-size:13px;box-shadow:var(--nsl2-shadow)}.nsl2-sticky-nav{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--nsl2-border)}.nsl2-sticky-nav a{padding:12px 2px;text-align:center;color:#6b5864;text-decoration:none;font-size:11px;font-weight:800}.nsl2-section{padding:58px 20px}.nsl2-tint{background:linear-gradient(145deg,#fff9fc,#fff0f7)}.nsl2-kicker{color:var(--nsl2-pink);font-size:11px;font-weight:900;letter-spacing:.2em;text-align:center}.nsl2-section-title{font-size:24px;line-height:1.4;font-weight:900;text-align:center;margin:5px 0 24px}.nsl2-section-lead{font-size:14px}.nsl2-image-card{display:block;width:100%;height:auto;border-radius:20px;box-shadow:var(--nsl2-shadow);margin:0 0 20px}.nsl2-schedule-grid{display:grid;gap:8px}.nsl2-schedule-item{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border:1px solid var(--nsl2-border);border-radius:13px;background:#fff;font-size:12px}.nsl2-schedule-item b{color:var(--nsl2-pink)}.nsl2-schedule-item.is-current{border-color:var(--nsl2-pink);box-shadow:0 0 0 3px rgba(255,45,146,.1)}.nsl2-schedule-item.is-current:after{content:"開催中";font-size:9px;color:#fff;background:var(--nsl2-pink);border-radius:99px;padding:2px 6px}.nsl2-highlight,.nsl2-route-total{margin-top:14px;text-align:center;padding:18px;border-radius:16px;background:linear-gradient(135deg,var(--nsl2-pink),#a96bea);color:#fff}.nsl2-highlight strong{font-size:17px}.nsl2-card,.nsl2-reward-group{padding:18px;margin:13px 0;border:1px solid var(--nsl2-border);border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(255,45,146,.08)}.nsl2-card-title{font-size:17px;font-weight:900;margin-bottom:12px;color:#493541}.nsl2-check-list{list-style:none;padding:0;margin:0}.nsl2-check-list li{position:relative;padding:8px 0 8px 28px;border-bottom:1px dashed #f1d5e3;font-size:13px}.nsl2-check-list li:last-child{border:0}.nsl2-check-list li:before{content:"✓";position:absolute;left:3px;color:var(--nsl2-pink);font-weight:900}.nsl2-entry-card{display:flex;flex-direction:column;text-align:center;padding:16px;margin:13px 0;border-radius:17px;background:linear-gradient(135deg,#ffe6f2,#eafcff);border:1px solid var(--nsl2-border)}.nsl2-entry-card strong{color:var(--nsl2-pink);font-size:17px}.nsl2-entry-card span{font-size:13px}.nsl2-alert{padding:14px;border-radius:14px;background:#fff2f2;border-left:4px solid #ff6d78;font-size:12px}.nsl2-note{color:var(--nsl2-muted);font-size:11px;line-height:1.7}.nsl2-formula{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:20px}.nsl2-formula span,.nsl2-formula strong{padding:8px;border-radius:10px;background:#fff;border:1px solid var(--nsl2-border);font-size:11px}.nsl2-formula strong{background:var(--nsl2-pink);color:#fff}.nsl2-value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.nsl2-value-grid span{display:flex;flex-direction:column;padding:11px;text-align:center;border-radius:12px;background:var(--nsl2-soft-pink);font-size:11px}.nsl2-value-grid b{color:var(--nsl2-pink);font-size:15px}.nsl2-table{width:100%;border-collapse:collapse;font-size:13px}.nsl2-table tr{border-bottom:1px solid #f4dce7}.nsl2-table th,.nsl2-table td{padding:8px}.nsl2-table th{text-align:left}.nsl2-table td{text-align:right;color:var(--nsl2-pink);font-weight:900}.nsl2-route-grid{display:grid;gap:12px}.nsl2-route{display:flex;flex-direction:column;align-items:center;padding:22px;border-radius:20px;background:#fff;border:1px solid var(--nsl2-border)}.nsl2-route small{color:var(--nsl2-cyan);font-weight:900}.nsl2-route strong{font-size:15px}.nsl2-route b{color:var(--nsl2-pink);font-size:34px}.nsl2-route-total{display:flex;flex-direction:column}.nsl2-route-total strong{font-size:30px}.nsl2-route-total span{font-size:12px}.nsl2-ranking-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.nsl2-ranking-tabs button{border:1px solid var(--nsl2-border);border-radius:10px;padding:10px 2px;background:#fff;color:#77616e;font-weight:800;font-size:11px}.nsl2-ranking-tabs button.is-active{background:var(--nsl2-pink);color:#fff}.nsl2-ranking-panel{display:none}.nsl2-ranking-panel.is-active{display:block}.nsl2-coming-soon{padding:42px 15px;text-align:center;border:1px dashed var(--nsl2-border);border-radius:18px;margin-top:12px;background:var(--nsl2-soft-pink)}.nsl2-coming-soon b{display:block;color:var(--nsl2-pink);font-size:24px;letter-spacing:.12em}.nsl2-coming-soon span{font-size:13px}.nsl2-rank-row{display:grid;grid-template-columns:38px 44px 1fr auto;align-items:center;gap:8px;padding:10px;border-bottom:1px solid #f5e2eb}.nsl2-rank-row img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#ffe5f1}.nsl2-rank-row .rank{font-weight:900;color:var(--nsl2-pink)}.nsl2-rank-row .name{font-size:13px;font-weight:800}.nsl2-rank-row .score{font-size:11px;font-weight:900}.nsl2-reward-group{margin-bottom:20px}.nsl2-reward-card{display:grid;grid-template-columns:48px 1fr;gap:3px 8px;padding:13px 0;border-bottom:1px solid #f2dce6}.nsl2-reward-card>b{grid-row:1/4;color:var(--nsl2-pink);font-size:17px}.nsl2-reward-card strong{font-size:14px}.nsl2-reward-card p,.nsl2-reward-card ul{grid-column:2;margin:3px 0;font-size:11px;padding-left:17px}.nsl2-reward-card.featured,.nsl2-reward-card.champion{margin:0 -7px;padding:15px 8px;border-radius:13px;background:var(--nsl2-soft-pink)}.nsl2-milestone{display:grid;gap:8px;margin-top:14px}.nsl2-milestone span{display:flex;flex-direction:column;text-align:center;padding:10px;border-radius:11px;background:linear-gradient(135deg,#fff0f7,#ecfbfd);font-size:11px}.nsl2-milestone b{color:var(--nsl2-pink);font-size:14px}.nsl2-faq-item{margin:10px 0;border:1px solid var(--nsl2-border);border-radius:14px;background:#fff;overflow:hidden}.nsl2-faq-item summary{padding:14px 38px 14px 14px;cursor:pointer;font-size:13px;font-weight:800;position:relative}.nsl2-faq-item summary:after{content:"＋";position:absolute;right:15px;color:var(--nsl2-pink)}.nsl2-faq-item[open] summary:after{content:"−"}.nsl2-faq-item p{margin:0;padding:0 14px 15px;color:#665a61;font-size:12px}.nsl2-cta{text-align:center;padding:65px 20px 35px;background:linear-gradient(160deg,#fff0f7,#effcff)}.nsl2-cta p{font-size:12px}.nsl2-cta>div{display:grid;gap:8px}.nsl2-cta a{padding:12px;border-radius:99px;text-decoration:none;font-size:12px;font-weight:900;color:#fff;background:var(--nsl2-pink)}.nsl2-cta small{display:block;margin-top:45px;color:#9b8a94;font-size:9px}
@media(min-width:430px){.nsl2-section{padding-left:28px;padding-right:28px}.nsl2-route-grid{grid-template-columns:1fr 1fr}.nsl2-six{grid-template-columns:repeat(3,1fr)}}@media(max-width:374px){.nsl2-section{padding-left:15px;padding-right:15px}.nsl2-schedule-item{align-items:flex-start;flex-direction:column}.nsl2-hero{min-height:620px}.nsl2-section-title{font-size:21px}}

.nsl2-rank-row .name {
  min-width: 0;
  overflow-wrap: anywhere;
}

.nsl2-rank-row .score {
  white-space: nowrap;
}

.nsl2-tab-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--nsl2-border);
}

.nsl2-tab-button {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 13px 2px;
  font-size: 10px;
  font-weight: 900;
  color: #6b5864;
  letter-spacing: .04em;
  cursor: pointer;
}

.nsl2-tab-button.is-active {
  color: var(--nsl2-pink);
  background: linear-gradient(180deg, #fff, #fff2f8);
  box-shadow: inset 0 -3px 0 var(--nsl2-pink);
}

.nsl2-tab-panel {
  display: none;
}

.nsl2-tab-panel.is-active {
  display: block;
  animation: nsl2FadeUp .25s ease both;
}

@keyframes nsl2FadeUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.nsl2-visual-details {
  margin: 14px 0 18px;
  border: 1px solid var(--nsl2-border);
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}

.nsl2-visual-details summary {
  cursor: pointer;
  padding: 12px 14px;
  font-size: 12px;
  font-weight: 900;
  color: var(--nsl2-pink);
  list-style: none;
}

.nsl2-visual-details summary::-webkit-details-marker {
  display: none;
}

.nsl2-visual-details summary::after {
  content: "＋";
  float: right;
}

.nsl2-visual-details[open] summary::after {
  content: "−";
}

.nsl2-visual-details .nsl2-image-card {
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

.nsl2-hero {
  min-height: 520px;
  padding: 34px 22px 28px;
}

.nsl2-hero-logo {
  width: min(76%, 300px);
}

.nsl2-hero-period {
  margin-top: 18px;
}

.nsl2-tab-panel > .nsl2-section:first-child {
  padding-top: 34px;
}

.nsl2-overview-slider {
  overflow: hidden;
}

.nsl2-overview-track {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
  scrollbar-width: none;
}

.nsl2-overview-track::-webkit-scrollbar {
  display: none;
}

.nsl2-overview-slide {
  flex: 0 0 92%;
  scroll-snap-align: center;
  display: block;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--nsl2-border);
  background: #fff;
  box-shadow: var(--nsl2-shadow);
}

.nsl2-overview-slide.is-missing {
  display: none;
}

.nsl2-overview-slide img {
  display: block;
  width: 100%;
  height: auto;
}

.nsl2-overview-dots {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.nsl2-overview-dots button {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  border: 0;
  background: #f5bfd8;
  padding: 0;
  cursor: pointer;
  transition: width .2s ease, background .2s ease;
}

.nsl2-overview-dots button.is-active {
  width: 18px;
  background: var(--nsl2-pink);
}

.nsl2-flow-list {
  position: relative;
  display: grid;
  gap: 12px;
}

.nsl2-flow-item {
  position: relative;
  padding: 18px;
  border: 1px solid var(--nsl2-border);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(255, 45, 146, .08);
}

.nsl2-flow-item:not(:last-child)::after {
  content: "↓";
  position: absolute;
  left: 50%;
  bottom: -18px;
  z-index: 2;
  transform: translateX(-50%);
  color: var(--nsl2-pink);
  font-size: 13px;
  font-weight: 900;
}

.nsl2-flow-label {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--nsl2-pink);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.nsl2-flow-item strong {
  display: block;
  color: #332733;
  font-size: 16px;
  font-weight: 900;
}

.nsl2-flow-item p {
  margin: 6px 0 0;
  color: #6f606b;
  font-size: 12px;
  line-height: 1.7;
}

.nsl2-overview-slide {
  border: 0;
  padding: 0;
  background: transparent;
  cursor: zoom-in;
}

.nsl2-lightbox {
  display: none;
  position: fixed;
  z-index: 3000;
  inset: 0;
  background: rgba(0, 0, 0, .92);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .25s ease;
}

.nsl2-lightbox.is-active {
  display: flex;
  opacity: 1;
}

.nsl2-lightbox-content {
  max-width: 94vw;
  max-height: 86vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nsl2-lightbox-content img {
  max-width: 100%;
  max-height: 86vh;
  border-radius: 12px;
  box-shadow: 0 0 30px rgba(0, 0, 0, .45);
}

.nsl2-lightbox-close {
  position: absolute;
  top: 14px;
  right: 18px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
  z-index: 3002;
}

.nsl2-lightbox-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  z-index: 3002;
}

.nsl2-lightbox-prev {
  left: 10px;
}

.nsl2-lightbox-next {
  right: 10px;
}

.nsl2-lightbox-counter {
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(0, 0, 0, .45);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  z-index: 3002;
}

body.nsl2-lightbox-open {
  overflow: hidden;
}
