@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{--bg:#0b0712;--bg2:#170d25;--purple:#9e6dc4;--gold:#ead098;--orange:#f39545;--text:#f8f0e4;--muted:#c8b8ce}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--bg);font-family:'Noto Sans JP',sans-serif;line-height:1.85;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 5% 25%,#3d1b40aa,transparent 42%),radial-gradient(ellipse at 90% 78%,#50301f55,transparent 40%),linear-gradient(140deg,#0b0812,#1b1027 52%,#080711);pointer-events:none}a{color:inherit;text-decoration:none}button{font:inherit}.site-glow{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(#e7b77c55 .7px,transparent 1px);background-size:43px 43px;opacity:.23}.site-header{background:#0c0718e6;border-bottom:1px solid #bb96544d;position:relative;z-index:2}.header-inner{max-width:1280px;padding:13px 28px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{font-family:Georgia,serif;font-size:29px;color:var(--gold);letter-spacing:.065em;line-height:1}.brand span{display:block;font-family:sans-serif;font-size:9px;letter-spacing:.34em;margin-top:8px;color:#c8a97e}.header-right{display:flex;gap:26px;align-items:center}.event-label{font-family:Georgia,serif;font-size:12px;letter-spacing:.19em;color:var(--purple)}.header-link{font-size:11px;letter-spacing:.12em;border:1px solid #e5ba795e;border-radius:30px;padding:8px 15px}.hero{position:relative;overflow:hidden;isolation:isolate;text-align:center;background:#0b0815}.hero-art{display:block;width:100%;height:auto;max-height:880px;object-fit:cover}.hero-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at 79% 20%,#ffd2823b,transparent 33%);animation:moon-pulse 8s ease-in-out infinite;z-index:1;pointer-events:none}.hero-mist{position:absolute;z-index:2;bottom:-8%;width:125%;height:25%;left:-12%;background:radial-gradient(ellipse,#c08bce44 0%,#68498519 40%,transparent 70%);filter:blur(23px);pointer-events:none;animation:mist 18s ease-in-out infinite alternate}.mist-two{bottom:7%;left:0;animation-duration:23s;animation-direction:alternate-reverse;opacity:.5}.hero-sparks{position:absolute;inset:0;z-index:3;pointer-events:none}.hero-sparks i{position:absolute;bottom:-4%;left:var(--x);width:var(--s);height:var(--s);background:#ffe0a5;border-radius:50%;box-shadow:0 0 10px 4px #ffa64c77;opacity:0;animation:spark var(--t) linear infinite;animation-delay:var(--d)}.hero-sparks i:nth-child(1){--x:6%;--s:3px;--t:12s;--d:-3s}.hero-sparks i:nth-child(2){--x:19%;--s:4px;--t:10s;--d:-7s}.hero-sparks i:nth-child(3){--x:27%;--s:2px;--t:13s;--d:-4s}.hero-sparks i:nth-child(4){--x:38%;--s:3px;--t:11s;--d:-9s}.hero-sparks i:nth-child(5){--x:48%;--s:2px;--t:14s;--d:-3s}.hero-sparks i:nth-child(6){--x:58%;--s:4px;--t:12s;--d:-8s}.hero-sparks i:nth-child(7){--x:70%;--s:2px;--t:11s;--d:-5s}.hero-sparks i:nth-child(8){--x:81%;--s:3px;--t:14s;--d:-2s}.hero-sparks i:nth-child(9){--x:91%;--s:4px;--t:10s;--d:-6s}.hero-sparks i:nth-child(10){--x:98%;--s:2px;--t:13s;--d:-11s}.hero-sparks i:nth-child(11){--x:33%;--s:2px;--t:17s;--d:-13s}.hero-sparks i:nth-child(12){--x:77%;--s:3px;--t:15s;--d:-12s}.hero-cta{position:absolute;z-index:4;bottom:3.5%;left:50%;transform:translateX(-50%);background:#150a1dba;border:1px solid #e3b774b0;box-shadow:0 0 22px #0a0715b0;color:#ffdfad;padding:8px 24px;font-size:clamp(11px,1.2vw,15px);letter-spacing:.17em;border-radius:40px;white-space:nowrap;transition:background .25s}.hero-cta:hover{background:#50233c}.hero-cta span{margin-left:14px}.tape{display:flex;justify-content:space-around;gap:25px;overflow:hidden;white-space:nowrap;background:linear-gradient(90deg,#321731,#21132b,#39221c);border-top:1px solid #b37d4a63;border-bottom:1px solid #b37d4a63;padding:11px 0;color:#d7a875;font-family:Georgia,serif;font-size:13px;letter-spacing:.21em}.section{max-width:1130px;padding:105px 25px;margin:0 auto;text-align:center}.eyebrow{font-family:Georgia,serif;font-size:13px;color:#bd99d4;letter-spacing:.29em;margin:0 0 20px}.intro h1{font-size:clamp(34px,5vw,60px);font-weight:500;letter-spacing:.1em;margin:0 0 30px}.intro h1 em{font-style:normal;color:#eac18d}.section-lead{font-size:16px;color:#dfd0dd;line-height:2.3}.date-inline{display:flex;justify-content:center;gap:22px;align-items:center;flex-wrap:wrap;color:#e1c79b;font-family:Georgia,serif;letter-spacing:.08em;font-size:17px;margin-top:35px}.date-inline b{color:#7e5577}.section-title{font-size:clamp(27px,3.6vw,43px);font-weight:500;letter-spacing:.09em;margin:0 0 45px}.offers{max-width:1200px}.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.offer-card{position:relative;text-align:center;padding:42px 36px 37px;min-height:445px;border:1px solid #a96b454a;background:radial-gradient(ellipse at 50% -10%,#7b2f2959,transparent 62%),linear-gradient(145deg,#281326,#130c1e);box-shadow:inset 0 0 0 5px #ffffff05,0 18px 45px #0005}.offer-card:after{content:'✦';position:absolute;top:8px;right:14px;color:#a27850}.offer-card.gold{background:radial-gradient(ellipse at 50% -10%,#72572c70,transparent 65%),linear-gradient(145deg,#292027,#130c1e)}.offer-step{font-family:Georgia,serif;font-size:13px;letter-spacing:.18em;color:#dbab88}.offer-card h3{font-size:23px;font-weight:500;margin:20px 0}.big-off{display:flex;justify-content:center;align-items:baseline;line-height:1;font-family:'Cormorant Garamond',Georgia,serif;color:#f9d49d;text-shadow:0 0 26px #ffa14460}.big-off strong{font-size:clamp(96px,10vw,150px);font-weight:600}.big-off span{font-size:62px}.big-off small{display:block;font-size:35px;letter-spacing:.07em}.offer-card p{max-width:420px;margin:24px auto 0;color:#e1d3df;font-size:14px}.offer-card p strong{color:#ffd6a0}.fine-print,.shop-note{color:#b5a3bb;font-size:12px;margin-top:25px}.colors{background:linear-gradient(100deg,#271329aa,#1e1a32a8,#31201888);border-top:1px solid #98765038;border-bottom:1px solid #98765038;max-width:none;padding:92px max(22px,calc((100vw - 1100px)/2))}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.color-grid>div{padding:20px 8px;border:1px solid #b68a6540;background:#ffffff06;display:flex;flex-direction:column;align-items:center;gap:8px}.swatch{height:62px;width:62px;display:block;border-radius:50%;border:3px solid #d6b88c66;box-shadow:0 0 0 8px #ffffff08,0 10px 20px #0008}.swatch.orange{background:radial-gradient(circle at 32% 30%,#ffd093,#eb6a19 58%,#8c250d)}.swatch.black{background:radial-gradient(circle at 32% 30%,#6d697b,#14121b 60%,#000)}.swatch.yellow{background:radial-gradient(circle at 32% 30%,#fff7ba,#e9b51d 63%,#856009)}.swatch.green{background:radial-gradient(circle at 32% 30%,#b2e4b4,#19784a 63%,#092e28)}.swatch.purple{background:radial-gradient(circle at 32% 30%,#e4b7ff,#733b9e 60%,#351452)}.color-grid span{font-family:Georgia,serif;font-size:15px;letter-spacing:.09em;color:#f1d6b1}.color-grid small{font-size:12px;color:#d7c4da}.colors-note{font-size:13px;margin:30px 0 0;color:#dfc3d7}.howto-box{max-width:800px;margin:auto;border:1px solid #ad8c595c;background:linear-gradient(140deg,#25182cdd,#110c1adf);padding:43px 38px 50px;box-shadow:0 15px 50px #0006}.step-num{margin-top:25px;color:#bb93d0;font-family:Georgia,serif;letter-spacing:.2em;font-size:14px}.step-num b{color:#e6c28b}.howto-box>p{font-size:17px;margin:8px 0 15px}.howto-box>p strong{color:#f6c18d}.keyword{margin:30px auto;padding:25px 10px;background:#0e0917;border:1px solid #b88d53a1;display:flex;align-items:center;flex-direction:column;gap:13px}.keyword>span{color:#bda6c7;letter-spacing:.12em;font-size:11px}.keyword>strong{color:#ffcf91;font-family:Georgia,serif;font-size:clamp(24px,4.4vw,38px);font-weight:500;letter-spacing:.05em}.keyword button{border:1px solid #bd9257;border-radius:30px;padding:10px 26px;background:#5c2b36;color:#fff0d8;cursor:pointer}.keyword button:hover{background:#84403a}.keyword small{color:#cbaeb3;font-size:11px}.notice-panel{max-width:860px;margin:auto;background:#211725a6;border:1px solid #8c785b69;padding:35px 50px;text-align:left}.notice-panel ul{list-style:none;margin:0;padding:0}.notice-panel li{position:relative;padding:0 0 16px 24px;color:#e1d7df;font-size:14px}.notice-panel li:before{content:'✧';position:absolute;left:0;color:#dca66e}.notice-note{font-size:12px;color:#c3a6b4;margin:8px 0 0}.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.shop-grid a{min-height:190px;padding:32px 18px;background:linear-gradient(150deg,#4a213e77,#171025);border:1px solid #af86564b;display:flex;flex-direction:column;justify-content:space-around;transition:transform .25s,border-color .25s}.shop-grid a:hover{transform:translateY(-5px);border-color:#f3bc76}.shop-grid span{font-family:Georgia,serif;color:#bd9fbc;font-size:12px;letter-spacing:.12em}.shop-grid strong{font-size:19px;font-weight:500}.shop-grid b{color:#e9bb85;font-family:Georgia,serif;font-size:12px;letter-spacing:.15em}.ending{text-align:center;padding:74px 20px 95px;background:radial-gradient(ellipse at center,#61304a65,transparent 70%);border-top:1px solid #ac88504f}.ending>span{color:#e9bd79;letter-spacing:1em}.ending p{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(30px,4vw,49px);margin:17px 0 0;color:#f5c78d}.ending strong{display:block;font-weight:400;letter-spacing:.14em;margin:8px 0 28px}.ending a{display:inline-block;border-bottom:1px solid #c19a6b;color:#e8c196;padding-bottom:6px;font-size:13px}footer{display:flex;justify-content:space-between;gap:20px;max-width:1180px;margin:0 auto;padding:25px;font-family:Georgia,serif;font-size:12px;color:#a694a4}.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes moon-pulse{50%{opacity:.5}}@keyframes mist{to{transform:translateX(13%) scale(1.08)}}@keyframes spark{0%{transform:translate3d(0,0,0);opacity:0}10%{opacity:.8}70%{opacity:.6}100%{transform:translate3d(34px,-520px,0);opacity:0}}@media(max-width:760px){.header-inner{padding:12px 17px}.brand{font-size:24px}.event-label{display:none}.hero-art{width:145%;max-width:none;margin-left:-22.5%;min-height:310px;object-fit:cover}.hero-cta{bottom:1%;font-size:11px;padding:5px 12px}.tape{font-size:10px}.section{padding:66px 18px}.section-lead{font-size:13px}.section-lead br{display:none}.date-inline{gap:7px;font-size:13px}.offer-grid{grid-template-columns:1fr}.offer-card{min-height:auto;padding:34px 16px}.offer-card h3{font-size:20px}.big-off strong{font-size:110px}.color-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.color-grid>div{padding:14px 1px}.swatch{height:38px;width:38px;border-width:2px;box-shadow:0 0 0 3px #ffffff08}.color-grid span{font-size:8px}.color-grid small{font-size:9px}.howto-box{padding:26px 18px}.howto-box>p{font-size:14px}.notice-panel{padding:26px 20px}.shop-grid{grid-template-columns:1fr 1fr;gap:10px}.shop-grid a{min-height:150px;padding:18px 9px}.shop-grid strong{font-size:15px}.shop-grid span{font-size:10px}.ending{padding:60px 15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* 2026 Halloween: 10 original shopping categories */
@media(min-width:761px){.shop-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.shop-grid a{min-height:175px;padding:23px 12px}.shop-grid strong{font-size:17px}.shop-grid span{font-size:11px}}
@media(max-width:760px){.shop-grid a{min-height:155px}.shop-grid strong{overflow-wrap:anywhere}}

/* 2026 Halloween: translucent vertical CTA over the right edge of hero */
.hero{padding-right:0;}
.hero-cta{
  position:absolute;z-index:5;left:auto;right:2.2%;top:50%;bottom:auto;
  transform:translateY(-50%);width:clamp(39px,4.6vw,66px);
  min-height:clamp(170px,20vw,258px);padding:20px 9px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;
  background:linear-gradient(180deg,rgba(17,8,28,.66),rgba(50,22,51,.76),rgba(17,8,28,.66));
  border:1px solid rgba(235,192,132,.68);border-radius:100px;
  box-shadow:0 8px 26px rgba(0,0,0,.28),inset 0 0 20px rgba(235,176,112,.08);
  color:#ffe1af;font-size:clamp(11px,1.05vw,15px);letter-spacing:.16em;
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  transition:background .25s,border-color .25s,box-shadow .25s;
}
.hero-cta:hover{background:rgba(72,34,70,.85);border-color:#ffe0a5;box-shadow:0 0 25px #e4aa6655;}
.hero-cta-text{writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;}
.hero-cta-arrow{margin:0!important;font-size:19px;line-height:1;}
.hero-cta span{margin-left:0;}
@media(max-width:760px){
  .hero{padding-right:0;}
  .hero-cta{position:absolute;right:2%;top:50%;bottom:auto;left:auto;transform:translateY(-50%);
    width:38px;min-height:155px;padding:12px 5px;gap:8px;border:1px solid #dfb57e99;
    border-radius:35px;background:rgba(20,10,28,.76);font-size:10px;letter-spacing:.08em;}
  .hero-cta-arrow{font-size:16px;}
}

/* 2026 Halloween: customer coupon assistance */
.coupon-support{max-width:1130px;padding-top:55px}
.support-panel{position:relative;max-width:900px;margin:auto;padding:52px clamp(22px,6vw,76px);text-align:left;border:1px solid #cba1668c;background:radial-gradient(ellipse at 90% 0,#663b5c35,transparent 55%),linear-gradient(145deg,#2b1831ed,#150e20ed);box-shadow:0 24px 70px #0006,inset 0 0 0 6px #ffffff04}
.support-panel:before,.support-panel:after{content:'✧';position:absolute;color:#cfa66d;font-size:22px}.support-panel:before{top:10px;left:18px}.support-panel:after{bottom:10px;right:18px}
.support-ornament{display:block;color:#c5a374;font-family:Georgia,serif;letter-spacing:.2em;font-size:11px;text-align:center;margin-bottom:16px}
.support-panel h3{text-align:center;color:#f8d5a5;font-weight:500;letter-spacing:.07em;font-size:clamp(19px,2.4vw,26px);line-height:1.65;margin:0 0 30px}
.support-panel p{font-size:15px;line-height:2.15;color:#e9dce6;margin:0 0 18px}.support-panel strong{font-weight:600;color:#f4c892}
.support-info{background:#100b1ca8;border:1px solid #b78f645c;padding:25px 28px;margin:33px 0 30px}.support-info h4{color:#f5cc96;font-size:17px;font-weight:500;margin:0 0 12px}.support-info ul{padding-left:1.35em;margin:0 0 9px}.support-info li{padding:3px 0;color:#f0e4e8}.support-info small{display:block;color:#ccb7c8;line-height:1.8}
.support-contact-intro{text-align:center!important;color:#d7b687!important;letter-spacing:.08em}.support-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 30px}.support-links a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:72px;padding:12px 10px;border:1px solid #d9ad7490;background:linear-gradient(145deg,#4d2b4b,#26182d);color:#fce7cc;font-size:13px;text-align:center;line-height:1.55;transition:background .25s,transform .25s,border-color .25s}.support-links a:hover{background:#704268;border-color:#f6d49d;transform:translateY(-3px)}.support-links a span{color:#f7c782}.support-closing{text-align:center!important;color:#f6d5a8!important;margin:22px 0 0!important}
@media(max-width:760px){.coupon-support{padding-top:30px}.support-panel{padding:38px 19px}.support-panel p{font-size:13px;line-height:2}.support-panel h3{font-size:19px}.support-info{padding:18px 16px}.support-links{grid-template-columns:1fr}.support-links a{min-height:54px}.desktop-only{display:none}}

/* 2026 Halloween LP — PC typography readability refinements */
@media (min-width: 761px) {
  body { font-size: 18px; line-height: 1.8; }
  .section-lead { font-size: 18px; line-height: 1.9; }
  .section-title { font-size: clamp(28px, 3vw, 38px); }
  .offer-card h3 { font-size: 22px; line-height: 1.6; }
  .offer-card p { font-size: 18px; line-height: 1.8; }
  .fine-print, .shop-note { font-size: 15px; line-height: 1.8; }
  .colors-note { font-size: 18px; line-height: 1.8; }
  .color-grid small { font-size: 15px; }
  .howto-box > p { font-size: 18px; line-height: 1.8; }
  .keyword > span, .keyword small { font-size: 15px; }
  .keyword button { font-size: 17px; line-height: 1.6; }
  .notice-panel li { font-size: 17px; line-height: 1.8; }
  .notice-note { font-size: 15px; }
  .support-panel p { font-size: 18px; line-height: 1.8; }
  .support-info h4 { font-size: 20px; }
  .support-info li { font-size: 18px; line-height: 1.8; }
  .support-info small { font-size: 16px; }
  .support-links a { font-size: 16px; line-height: 1.65; }
  .shop-grid strong { font-size: 20px; line-height: 1.55; }
  .shop-grid span, .shop-grid b { font-size: 13px; }
}


/* Halloween floating contacts: appear after hero on desktop and mobile */
.halloween-floating{position:fixed;z-index:100;top:50%;left:14px;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}
.halloween-floating.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.halloween-floating__link{pointer-events:auto;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:82px;min-height:89px;padding:13px 5px 11px;color:#ffe8bd!important;text-align:center;font-weight:600;font-size:12px;line-height:1.35;letter-spacing:.04em;background:linear-gradient(155deg,rgba(63,27,67,.96),rgba(20,12,31,.97));border:1px solid rgba(238,183,114,.7);border-radius:17px;box-shadow:0 6px 24px #0008,inset 0 0 19px #ba714315;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);transition:transform .25s,border-color .25s,box-shadow .25s}
.halloween-floating__link:before{content:'✦';position:absolute;top:2px;right:8px;color:#e7a967;font-size:10px}
.halloween-floating__link svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.halloween-floating__link:hover,.halloween-floating__link:focus-visible{transform:translateX(4px);border-color:#ffe0a5;box-shadow:0 5px 27px #d8896555,inset 0 0 19px #ba714322;outline-offset:3px}
.halloween-floating__line{background:linear-gradient(160deg,rgba(32,65,55,.96),rgba(19,27,31,.97));border-color:rgba(147,211,155,.58);color:#e2ffd9!important}
.halloween-floating__line:before{color:#b8e8b6}
@media(max-width:760px){
  .halloween-floating{top:auto;bottom:0;left:0;right:0;transform:translateY(calc(100% + 12px));display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:linear-gradient(180deg,rgba(14,8,24,.97),rgba(26,13,36,.98));border-top:1px solid #b48a5f77;box-shadow:0 -9px 28px #0007;opacity:0;visibility:hidden;transition:transform .35s ease,opacity .3s ease,visibility .3s}
  .halloween-floating.is-visible{transform:translateY(0);opacity:1;visibility:visible}
  .halloween-floating__link{flex-direction:row;width:100%;min-height:44px;padding:8px 12px;border-radius:12px;font-size:13px;gap:8px}
  .halloween-floating__link:before{display:none}
  .halloween-floating__link svg{width:22px;height:22px;flex:none}
  .halloween-floating__link:hover,.halloween-floating__link:focus-visible{transform:none}
  body:has(.halloween-floating.is-visible){padding-bottom:calc(66px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){.halloween-floating,.halloween-floating__link{transition:none!important}}

/* 2026 Halloween LP: smartphone headline refinement only */
@media screen and (max-width:760px) {
  .intro h1 {
    font-size:clamp(27px, 7.5vw, 35px);
    letter-spacing:.045em;
    line-height:1.45;
    overflow-wrap:normal;
  }
  .section-title {
    font-size:clamp(24px, 6.2vw, 33px);
    letter-spacing:.035em;
    line-height:1.48;
    overflow-wrap:normal;
  }
  .ending p {
    font-size:clamp(27px, 7vw, 39px);
    letter-spacing:.025em;
    line-height:1.45;
  }
}

/* Halloween 2026: brighter promotional cards, retaining text and layout */
.offer-card {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(135,65,82,.44), transparent 70%),
    linear-gradient(145deg,#482333 0%,#321d34 54%,#26152f 100%);
  border-color:rgba(183,119,123,.67);
  box-shadow:inset 0 0 0 5px #ffffff06,0 18px 45px #0005;
}
.offer-card.gold {
  background:
    radial-gradient(ellipse at 55% 0%, rgba(175,125,72,.32), transparent 70%),
    linear-gradient(145deg,#544035 0%,#3b2d34 52%,#271b30 100%);
  border-color:rgba(194,150,105,.70);
}


/* SP表示ではヒーローの詳細ボタンを非表示 */
@media screen and (max-width: 760px) {
  .hero-cta {
    display: none !important;
  }
}