@charset "UTF-8";
:root{--navy:#0b2f78;--blue:#1597ea;--pink:#ff4f78;--yellow:#ffca28;--green:#26c6a0;--purple:#8f52ea;--text:#15345f;--muted:#5f7691;--line:#d7ecfa;--bg:#f7fcff}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;-webkit-text-size-adjust:100%} a{color:inherit} strong,b{font-weight:900}
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#dff5ff 0%,#fff 78%);border-bottom:1px solid #e4f3fc}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;opacity:.45}.hero:before{width:240px;height:240px;background:#72d6ff;top:-115px;left:-100px}.hero:after{width:220px;height:220px;background:#ffef91;top:-95px;right:-100px}.hero-inner{position:relative;z-index:2;width:min(100% - 28px,560px);margin:auto;text-align:center;padding:32px 0 28px}.eyebrow{display:inline-block;background:var(--navy);color:#fff;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:900;letter-spacing:.07em}.hero h1{margin:12px 0 10px;font-size:clamp(38px,11vw,58px);line-height:1.02;letter-spacing:-.045em;color:var(--navy);font-weight:900}.hero h1 span{color:var(--pink)}.hero-copy{margin:0;font-size:16px;font-weight:700;line-height:1.55}.hero-copy strong{color:var(--pink)}
.festival-strip{height:74px;display:flex;align-items:flex-end;justify-content:center;gap:4px;margin:18px 0 12px;font-size:39px;filter:drop-shadow(0 6px 8px rgba(20,62,111,.12))}.festival-strip span:nth-child(2),.festival-strip span:nth-child(4){transform:translateY(-8px)}
.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.primary-btn,.secondary-btn{min-height:48px;border-radius:14px;display:grid;place-items:center;text-decoration:none;font-weight:900;font-size:14px}.primary-btn{background:var(--pink);color:#fff;box-shadow:0 8px 18px rgba(255,79,120,.18)}.secondary-btn{background:#fff;color:var(--navy);border:2px solid #cceafb}
.quick-entry{margin-top:14px;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.quick-entry div{padding:10px 4px 9px;border-right:1px dashed #c5deed}.quick-entry div:last-child{border-right:0}.quick-entry b{display:inline;font-size:22px;color:var(--pink);line-height:1}.quick-entry span{font-size:11px;margin-left:1px}.quick-entry strong{display:block;font-size:13px;color:var(--navy);margin-top:2px}
.confetti{position:absolute;width:12px;height:48px;border-radius:20px;opacity:.9}.c1{left:5%;top:30px;background:var(--yellow);transform:rotate(28deg)}.c2{left:18%;top:92px;background:var(--pink);transform:rotate(-27deg)}.c3{right:16%;top:55px;background:var(--blue);transform:rotate(17deg)}.c4{right:4%;top:120px;background:var(--yellow);transform:rotate(-32deg)}
.section{width:min(100% - 28px,980px);margin:auto;padding:58px 0}.section.narrow{max-width:700px}.compact-top{padding-top:46px}.section-head{text-align:center;margin-bottom:26px}.section-kicker{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.15em}.section-head h2{margin:5px 0 7px;font-size:29px;line-height:1.25;color:var(--navy);letter-spacing:-.03em}.section-head p{margin:0;font-size:14px;color:var(--muted);font-weight:700}
.steps{display:grid;gap:12px}.step-card{position:relative;display:grid;grid-template-columns:52px 1fr;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:18px 16px 18px 20px;box-shadow:0 8px 22px rgba(33,91,129,.06)}.step-no{position:absolute;top:-9px;left:-5px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:15px;font-weight:900;border:3px solid #fff}.step-icon{font-size:38px;line-height:1;text-align:center}.step-icon.sticker{color:var(--pink);font-size:52px}.step-text h3{margin:0 0 3px;font-size:18px;color:var(--navy)}.step-text p{margin:0;font-size:14px;line-height:1.65;color:#405a77}
.entry-section{background:#eef9ff;border-top:1px solid #e1f1fa;border-bottom:1px solid #e1f1fa}.entry-list{display:grid;gap:10px}.entry-row{min-height:68px;border-radius:18px;padding:12px 18px;color:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;box-shadow:0 8px 18px rgba(30,77,119,.09)}.entry-row div{text-align:left}.entry-row b{font-size:34px;line-height:1}.entry-row span{font-size:14px;margin-left:2px}.entry-row i{font-style:normal;font-size:26px;opacity:.9}.entry-row strong{text-align:right;font-size:28px}.blue{background:linear-gradient(135deg,#1f9bea,#176fd8)}.pink{background:linear-gradient(135deg,#ff7796,#f23d69)}.yellow{background:linear-gradient(135deg,#ffc93a,#e9a600)}.purple{background:linear-gradient(135deg,#ac74fb,#783bd9)}.small-note{margin:13px 4px 0;text-align:center;font-size:12px;color:var(--muted)}
.prize-section{background:linear-gradient(150deg,#0b2f78,#168fd7);color:#fff}.prize-section .section{padding-top:58px;padding-bottom:58px}.section-head.light .section-kicker,.section-head.light h2,.section-head.light p{color:#fff}.prize-stack{display:grid;gap:12px}.prize-card{display:grid;grid-template-columns:auto 54px 1fr auto;align-items:center;gap:10px;background:#fff;color:var(--navy);border-radius:20px;padding:15px 16px;box-shadow:0 10px 24px rgba(0,0,0,.12)}.rank-badge{min-width:50px;text-align:center;border-radius:999px;background:#eef7ff;padding:7px 8px;font-size:16px;font-weight:900}.prize-symbol{font-size:32px;text-align:center}.amount{line-height:1.05}.amount b{font-size:28px;letter-spacing:-.04em}.amount span{display:block;font-size:11px;margin-top:3px}.winner{font-size:12px;font-weight:900;background:#edf7ff;border-radius:999px;padding:6px 9px;white-space:nowrap}.first{border:2px solid #ffd64b}.second{border:2px solid #cfd9e4}.third{border:2px solid #f3aa70}
.notice-callout{display:flex;align-items:center;gap:10px;background:#fff5d6;border:1.5px solid #ffd45f;border-radius:16px;padding:14px 15px;margin-bottom:14px;font-size:14px}.notice-callout>strong{background:#ffbd19;color:#5a3b00;border-radius:999px;padding:5px 10px;font-size:12px;white-space:nowrap}.faq-list{display:grid;gap:10px}.faq-list details{background:#fff;border:1.5px solid var(--line);border-radius:16px;overflow:hidden}.faq-list summary{list-style:none;cursor:pointer;min-height:52px;display:flex;align-items:center;gap:10px;padding:13px 15px;font-size:15px;font-weight:900;color:var(--navy)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"＋";margin-left:auto;font-size:20px;color:var(--blue)}.faq-list details[open] summary:after{content:"−"}.faq-list p{margin:0;padding:0 16px 16px 48px;font-size:14px;color:#405a77}
footer{background:var(--navy);color:#fff}.footer-inner{width:min(100% - 28px,700px);margin:auto;text-align:center;padding:28px 0 calc(28px + env(safe-area-inset-bottom))}.footer-inner strong{font-size:14px}.footer-inner p{margin:6px 0 0;font-size:11px;opacity:.78}
@media(min-width:760px){.hero-inner{width:min(92vw,900px);padding:62px 0 48px}.hero h1{font-size:72px}.hero-copy{font-size:22px}.festival-strip{font-size:58px;height:100px;gap:16px}.hero-actions{width:480px;margin:0 auto}.quick-entry{width:570px;margin:18px auto 0}.quick-entry b{font-size:30px}.quick-entry strong{font-size:15px}.section{padding:82px 0}.section-head h2{font-size:43px}.steps{grid-template-columns:repeat(3,1fr);gap:18px}.step-card{display:block;padding:30px 24px;text-align:center}.step-no{left:18px;top:-14px;width:42px;height:42px;font-size:20px}.step-icon{font-size:52px;margin-bottom:10px}.step-text h3{font-size:21px}.entry-list{grid-template-columns:repeat(2,1fr)}.prize-stack{grid-template-columns:repeat(3,1fr)}.prize-card{display:flex;flex-direction:column;text-align:center;padding:26px 20px}.rank-badge{font-size:20px}.prize-symbol{font-size:48px}.amount b{font-size:39px}.amount span{font-size:14px}.winner{font-size:13px}.faq-list{grid-template-columns:repeat(2,1fr)}.faq-list p{padding-left:16px}}
@media(max-width:360px){.hero h1{font-size:35px}.hero-copy{font-size:14px}.hero-inner,.section,.footer-inner{width:min(100% - 20px,560px)}.quick-entry b{font-size:19px}.quick-entry strong{font-size:12px}.entry-row{padding-left:14px;padding-right:14px}.entry-row b{font-size:30px}.entry-row strong{font-size:25px}.prize-card{grid-template-columns:auto 42px 1fr auto}.prize-symbol{font-size:27px}.amount b{font-size:24px}}


/* --- Treasure map & participating companies --- */
.company-map-section {
  background: linear-gradient(180deg, #fff9e8 0%, #fff 100%);
  padding: 64px 0;
  border-top: 1px solid #f3e1b2;
  border-bottom: 1px solid #f3e1b2;
}

.treasure-map {
  margin: 0;
  border-radius: 24px;
  overflow: hidden;
  border: 3px solid #e6b763;
  background: #f7e3b4;
  box-shadow: 0 12px 28px rgba(85, 60, 20, .12);
}

.treasure-map img {
  display: block;
  width: 100%;
  height: auto;
}

.company-head {
  margin: 26px 2px 12px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.company-head span {
  font-size: 21px;
  font-weight: 900;
  color: var(--navy);
}

.company-head small {
  color: #6c7f92;
  font-weight: 700;
}

.company-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.company-link {
  min-height: 58px;
  display: grid;
  grid-template-columns: 68px minmax(0,1fr) 32px;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 16px;
  text-decoration: none;
  box-shadow: 0 6px 14px rgba(28, 88, 132, .06);
}

.company-link .booth {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  border-radius: 11px;
  color: #fff;
  font-weight: 900;
  letter-spacing: .02em;
}

.company-link.s .booth { background: #ff4f78; }
.company-link.f .booth { background: #178de0; }
.company-link.t .booth { background: #f5b700; color: #18355d; }

.company-name {
  min-width: 0;
  font-weight: 900;
  color: var(--navy);
  line-height: 1.35;
}

.company-link .go {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #eef8ff;
  color: var(--blue);
  font-size: 18px;
  font-weight: 900;
}

.company-link:focus-visible,
.company-link:hover {
  border-color: var(--blue);
  outline: none;
}

@media (min-width: 720px) {
  .company-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .company-map-section {
    padding: 82px 0;
  }
}
