/* 会員20万人の節目を主役に、同じ太ゴシックのタイトルと賞品一覧を組む。 */
.hero .hero-inner{display:block;padding-top:145px;padding-bottom:42px}
.milestone{display:flex;align-items:center;justify-content:center;gap:25px;padding:0 0 26px;margin:0 0 34px;border-bottom:1px solid #eac36a70;color:#fff1c5;text-shadow:0 3px 12px #020b2b}
.milestone-brand{font:900 28px Arial,sans-serif;letter-spacing:.02em;padding-right:25px;border-right:1px solid #eac36a70}
.milestone-main{display:flex;align-items:baseline;gap:8px;font-size:28px;font-weight:800;letter-spacing:.02em}
.milestone-main>strong{font-family:Festival,sans-serif;font-size:76px;line-height:1.2;color:#ffdf85;font-weight:400;letter-spacing:-.05em}
.milestone-main>strong>span{font-size:39px;letter-spacing:0;margin-left:3px}
.hero-celebration{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:46px;align-items:center}
.hero h1.festival-title{font-family:Festival,sans-serif;font-weight:400;gap:12px;display:flex;align-items:flex-start;flex-direction:column;line-height:1.2;filter:drop-shadow(0 5px 0 #020f34);width:100%;margin:0;text-align:left}
.festival-title-days{display:flex;align-items:center;gap:14px;color:#ffe29c}
.festival-title-days>b{font-family:inherit;font-size:112px;font-weight:400;letter-spacing:-.07em;line-height:1.05}
.festival-title-days>span{font-size:39px;letter-spacing:.01em;line-height:1.25}
.festival-title-name{display:block;font-size:43px;white-space:nowrap;letter-spacing:-.045em;color:#fff9e9;line-height:1.5}
.festival-title-name>span{color:#ffdc82;font-size:1.16em;margin-left:3px}
.hero .hero-lead{font-size:14px;line-height:1.9;margin-top:22px;letter-spacing:.05em}
.hero .period{margin-block:23px}
.hero-showcase{min-width:0}
.showcase-intro{display:flex;justify-content:space-between;align-items:center;color:#ffe3a0;font-size:14px;font-weight:800;margin-bottom:13px;letter-spacing:.03em}
.showcase-intro>span{font-size:11px;color:#d1ddf2;font-weight:500}
.hero-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.hero-product{margin:0;background:#fff8e7;padding:6px 6px 10px;border:1px solid #ddbd74;box-shadow:0 5px 14px #010a2733;position:relative}
.hero-product .product-photo{height:auto;aspect-ratio:1.3;width:100%;background-repeat:no-repeat}
.hero-product figcaption{font-size:10px;line-height:1.5;letter-spacing:-.02em;text-align:center;font-weight:700;color:#162854;padding-top:8px}
.product-published{position:absolute;top:10px;left:10px;background:#b41429;color:#fff3cc;font:700 7px Arial,sans-serif;padding:4px 5px}
.hero-product .art-switch{background-size:390% auto;background-position:3.5% 67%}
.hero-product .art-sushi{background-size:390% auto;background-position:0% 39%}
.hero-product .art-tea{background-size:370% auto;background-position:70% 64%}
.hero-product .art-coins{background-size:400% auto;background-position:0% 84%}
.hero-product .art-puzzle{background-size:435% auto;background-position:70% 84%}
.repost-banner{display:block;width:100%;height:auto;margin-top:16px}
.showcase-note{font-size:8px;line-height:1.8;color:#bbcce6;text-align:center;margin-top:8px}
@media(max-width:1100px) and (min-width:701px){.hero-celebration{gap:26px;grid-template-columns:1fr 1fr}.milestone-main{font-size:23px}.milestone-main>strong{font-size:62px}.milestone-brand{font-size:23px}.festival-title-days>b{font-size:90px}.festival-title-days>span{font-size:29px}.festival-title-name{font-size:32px}.hero-products{gap:8px}.hero-product figcaption{font-size:8px}.showcase-intro{font-size:11px}.showcase-intro>span{font-size:9px}.hero .button{width:100%;font-size:11px}}
@media(max-width:700px){.hero .hero-inner{padding-top:99px;padding-bottom:26px}.milestone{display:flex;flex-direction:column;gap:6px;padding-bottom:20px;margin-bottom:24px}.milestone-brand{border:0;padding:0;font-size:20px;letter-spacing:.09em}.milestone-main{font-size:19px;gap:5px;white-space:nowrap}.milestone-main>strong{font-size:53px}.milestone-main>strong>span{font-size:28px}.hero-celebration{display:flex;flex-direction:column;gap:28px}.hero h1.festival-title{align-items:center;gap:6px;filter:drop-shadow(0 3px 0 #020f34)}.festival-title-days{gap:14px}.festival-title-days>b{font-size:100px}.festival-title-days>span{font-size:35px}.festival-title-name{font-size:36px;letter-spacing:-.055em}.hero .hero-copy{text-align:center}.hero .hero-lead{font-size:12px;margin-top:17px}.hero .period{justify-content:center;margin-block:22px}.hero .button{margin-inline:auto;max-width:440px}.hero .hero-note{max-width:none}.hero-showcase{width:100%}.hero-products{gap:9px}.hero-product{padding:4px 4px 8px}.hero-product figcaption{font-size:8px;letter-spacing:-.05em;min-height:32px;display:flex;align-items:center;justify-content:center;padding-top:6px}.product-published{font-size:5px;left:7px;top:7px;padding:3px}.showcase-intro{font-size:12px}.showcase-intro>span{font-size:10px}.repost-banner{margin-top:12px}.showcase-note{font-size:7px}.hero .hero-bottom{padding-bottom:18px}}
@media(max-width:370px){.milestone-main{font-size:16px}.milestone-main>strong{font-size:47px}.milestone-main>strong>span{font-size:25px}.festival-title-days>b{font-size:88px}.festival-title-days>span{font-size:31px}.festival-title-name{font-size:31px}.hero-product figcaption{font-size:7px}}
@media(min-width:1101px){.milestone-brand{font-size:32px}.milestone-main{font-size:32px}.milestone-main>strong{font-size:84px}.festival-title-name{font-size:52px}.festival-title-days>b{font-size:128px}.festival-title-days>span{font-size:43px}}
.hero-product .art-coins{background-position:0% 86%}
.hero-product .art-puzzle{background-position:70% 86%}
.lantern-keys{position:absolute;inset:0 0 auto;height:148px;z-index:5;pointer-events:none}
.lantern-key{position:absolute;top:var(--key-y);left:var(--key-x);transform:translate(-50%,-50%);width:clamp(30px,9vw,65px);height:clamp(46px,12vw,85px);pointer-events:auto;background:transparent;border:1px solid transparent;border-radius:45%;cursor:pointer;color:transparent;-webkit-tap-highlight-color:transparent}
.lantern-key:focus{outline:none}
.lantern-key:focus-visible::after{content:"";position:absolute;bottom:0;left:35%;right:35%;height:2px;background:#ffe699}
.lantern-key:disabled{cursor:default}
.no-webgl .lantern-key{background:#ffe09a;color:#78222d;font:bold 20px Georgia}
.word-play{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.word-play output{display:block;font:bold 14px/1.8 monospace;letter-spacing:.08em;color:white}
.word-burst{position:absolute;top:0;left:0;width:100%;height:360px;pointer-events:none;z-index:0}
@media(max-width:700px){.lantern-keys{height:95px}.word-burst{height:285px}.word-play{font-size:10px}}
.lantern-glow {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--paper-size);
  height: calc(var(--paper-size) * 1.3);
  transform: translate(-50%, -50%);
  border-radius: 45%;
  background: radial-gradient(ellipse, #fff6cdba 18%, #ffda728f 72%, transparent);
  box-shadow: 0 0 15px 5px #ffc953b3;
  pointer-events: none;
  opacity: 0;
}
.discovery {
  width: min(390px, calc(100vw - 32px));
  max-height: 90dvh;
  margin: auto;
  padding: 30px 24px 16px;
  border: 3px double #e1bb69;
  color: #fff6db;
  background: radial-gradient(ellipse at top, #213c70, #081831 74%);
  text-align: center;
  box-shadow: 0 18px 70px #02081faa;
}
.discovery::backdrop { background: #030c21af; }
.discovery-label { color: #f6d993; font-size: 11px; letter-spacing: .14em; }
.discovery h2 { margin: 14px 0 20px; font: 400 clamp(20px,5vw,26px)/1.45 Festival,sans-serif; }
.discovery-key { border-block: 1px solid #dfbc725c; padding: 12px; }
.discovery-key small { display: block; font-size: 11px; color: #f1dcae; }
.discovery-key strong { display: block; font: 800 35px/1.45 Georgia,serif; letter-spacing: .13em; color: #ffdc84; }
.discovery-share { display: block; background: #ffdc88; color: #0d2040; font-weight: 800; padding: 12px; margin: 20px 0 6px; }
.discovery form button { color: #fff6db; background: transparent; border: 0; padding: 10px 18px; font: inherit; font-size: 13px; cursor: pointer; }

/* A commemorative imprint above a vermilion festival ticket and brush title. */
.honour {
  display:flex; align-items:center; justify-content:center; gap:clamp(10px,2vw,26px);
  margin:0 auto clamp(25px,3vw,42px); color:#fff3cf;
}
.honour::before,.honour::after {
  content:""; flex:1; height:5px; border-block:1px solid #d9b46b88;
}
.honour-seal {
  display:grid; place-items:center; flex:none; width:1.32em; height:1.32em;
  font:clamp(27px,3.5vw,48px)/1 FestivalBrush,serif;
  background:#b62c28; color:#fff2d4; outline:1px solid #f0b293; outline-offset:-4px;
  transform:rotate(-6deg);
}
.honour-copy {display:flex; align-items:baseline; gap:1em; white-space:nowrap}
.honour-brand {font:800 clamp(15px,2vw,29px)/1 Arial,sans-serif; letter-spacing:.05em}
.honour-message {font:700 clamp(18px,2.3vw,34px)/1.25 serif; letter-spacing:.04em}
.honour-message strong {font-size:1.45em; color:#ffda81; margin-inline:.06em}
.hero h1.festival-lettering {display:block;width:min(100%,520px);margin:0;line-height:0}
.festival-lettering svg {display:block;width:100%;height:auto}
.lettering-number {font:400 154px Festival,sans-serif;letter-spacing:-.09em}
.lettering-days {font:400 32px Festival,sans-serif;letter-spacing:.1em;fill:#fff3d9}
.lettering-gift {font:400 58px Festival,sans-serif;letter-spacing:-.065em;fill:#fff6de}
@font-face {
  font-family:FestivalMincho;
  src:url("assets/fonts/festival-mincho.ttf") format("truetype");
  font-weight:900;
  font-display:swap;
}
.lettering-festival {font:900 124px FestivalMincho,serif;paint-order:stroke;stroke:#602b1e;stroke-width:2px}
.hero-product .switch-photo {display:block;background:#071d4e}
@media(max-width:700px){
  .honour {gap:9px; margin-bottom:25px}
  .honour-copy {display:grid; gap:3px; text-align:left}
  .honour-brand {font-size:13px; letter-spacing:.12em}
  .hero h1.festival-lettering {margin-inline:auto}
}
.product-photo.day02-preview,.preview-art.day02-preview {
  background: #fff url("assets/day02.jpg") 50% 35% / 125% auto no-repeat;
}
.product-photo.day03-preview,.preview-art.day03-preview {
  background: #fff url("assets/day03.jpg") 50% 34% / 110% auto no-repeat;
}
.calendar-deadline {display:block;margin-top:8px;padding:5px 6px;border-left:2px solid #ffdc88;background:#071933;color:#ffedbf;font-size:11px;line-height:1.5}
.calendar-deadline strong {display:block;font-size:clamp(11px,1vw,14px)}

.x-festival {color:#fff4da}
.x-festival .eyebrow,.x-festival h2 em {color:#ffdb83}
.x-section-title {margin-bottom:12px}
.x-official-posts {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.x-post {min-width:0;padding:16px;background:#fff9ea;color:#152343;border-top:3px solid #d8ac55}
.x-post h3 {font-size:15px;letter-spacing:.05em}
.x-post blockquote {margin:12px 0}
.x-source {display:block;margin-top:10px;font-size:12px;text-decoration:underline}
@media(max-width:740px){.x-official-posts {grid-template-columns:minmax(0,1fr)}}

.calendar-photo {
  display:block; width:100%; aspect-ratio:1.85; object-fit:contain;
  margin-top:10px; background:#fff; border:1px solid #d9bd82;
}
@media(max-width:700px) {
  .calendar-card.is-open {grid-column:span 2}
  .calendar-card.is-open .calendar-title {font-size:13px}
}

.howto .join-art {display:block;width:min(100%,320px);height:auto;margin:5px auto 12px}
.howto .reply img {width:72px;height:auto;flex:none}
@media(max-width:600px){
  .howto .steps {grid-template-columns:minmax(0,1fr);max-width:420px}
  .howto .steps article {padding:24px 16px 18px}
  .howto .join-art {width:min(88%,240px);margin:0 auto 8px}
  .howto .steps h3 {font-size:18px}
  .howto .steps p,.howto .steps a,.howto .reply p {font-size:12px}
  .howto .reply img {width:49px}
}

.bonus-register {text-align:center;margin:16px auto 0}
.bonus-register a {display:inline-block;padding:10px 18px;border:1px solid #dfbf74;border-radius:4px;color:#fff2c9;font-weight:700}
.bonus-register a:hover {background:#233f71}

#latest [hidden] {display:none}
.pickup-controls {display:flex;gap:10px;align-items:center;justify-content:flex-end;margin:0 0 16px;color:#142a51}
.pickup-controls button {min-height:44px;min-width:44px;padding:6px 12px;border:1px solid #c7b48c;background:#fffaf0;color:inherit;font-weight:700}
.pickup-position {font:bold 14px Arial,sans-serif;font-variant-numeric:tabular-nums}
.feature h3 .pickup-headline {font:inherit;letter-spacing:inherit}
.pickup-empty {text-align:center;padding:24px;background:#fff6de}
.pickup-empty a {text-decoration:underline}

.hero-showcase {width:min(100%,390px);margin-inline:auto}
.hero-prize-poster {display:block;width:100%;padding:0;border:1px solid #d9b961;background:#081938;cursor:zoom-in}
.hero-prize-poster img {display:block;width:100%;height:auto}

.calendar-state {display:block;margin-top:8px;font-size:11px;font-weight:700;color:#ffe298}
.calendar-card.is-ended .calendar-state {color:#d8e0ec}
.calendar-card.is-ended {background:#33435e}
.confirmed-prize {display:block;object-fit:contain;background:#fff}
