* { box-sizing: border-box; }

html, body { margin: 0; min-width: 320px; background: #f7f0df; scroll-behavior: smooth; }
body { font-family: "Noto Sans JP", sans-serif; }
button { font: inherit; }
.campaign-page { display: grid; place-items: start center; min-height: 100svh; overflow: hidden; }
.cash-campaign { isolation: isolate; position: relative; overflow: hidden; width: min(100%, 780px); min-height: max(100svh, 1290px); padding-bottom: 30px; background: radial-gradient(at 50% 51%, #fffefa 0 8%, #f7e8ca 36%, #ead1a7 100%); }
.cash-campaign::before { content: ""; z-index: -1; position: absolute; inset: 0; opacity: .74; background: repeating-radial-gradient(at 50% 51%, transparent 0 5px, rgba(186,137,64,.04) 6px 7px); }
.car-stage { z-index: 0; position: absolute; top: 0; left: 0; width: 100%; height: 560px; background: url("hero-photo.jpg") center 39% / cover no-repeat; mask-image: linear-gradient(#000 0 86%, transparent); animation: hero-reveal 1.1s cubic-bezier(.18,.86,.32,1) both; }
.car-stage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.3) 49%, transparent 62%); mix-blend-mode: screen; animation: hero-shine 4.6s ease-in-out infinite; }
.limited-seal { z-index: 2; display: grid; place-content: center; gap: 1px; position: absolute; top: 20px; left: 15px; aspect-ratio: 1; width: 194px; border: 7px solid #ffd85b; border-radius: 50%; color: #090909; text-align: center; text-shadow: 0 1px #fff8b7; background: radial-gradient(circle at 33% 27%, #fffbd7 0 3%, #f9df66 33%, #da9217 74%, #8b4800); box-shadow: inset 0 0 0 3px #8c5008, inset 0 0 20px #fff8a5, 0 4px 15px rgba(93,53,0,.5); transform: rotate(-4deg); }
.limited-seal span { font-size: 28px; font-weight: 900; letter-spacing: -.08em; }
.limited-seal strong { font-size: 43px; line-height: 1; letter-spacing: -.11em; }
.limited-seal b { font-size: 33px; line-height: 1.12; letter-spacing: -.08em; }
.chance-panel { z-index: 2; position: absolute; top: 53px; right: -11px; padding: 15px 28px 15px 30px; color: #fff; text-align: center; line-height: 1.05; background: linear-gradient(135deg, #111 0 70%, #020202); border: 2px solid #ffc929; box-shadow: 0 0 18px rgba(255,213,48,.63), 0 5px 9px rgba(0,0,0,.4); transform: rotate(-2deg); }
.chance-panel span, .chance-panel strong { display: block; font-weight: 900; letter-spacing: -.1em; }
.chance-panel span { font-size: 29px; letter-spacing: -.09em; }
.chance-panel strong { color: #ffe42f; font-size: 42px; text-shadow: 0 0 7px #e4a300; }
.campaign-content { position: relative; z-index: 1; padding: 448px 15px 0; text-align: center; }
.red-ribbon { position: relative; margin: 0 -2px 22px; padding: 10px 12px; color: #fff; font-size: clamp(20px,4.4vw,32px); font-weight: 900; line-height: 1.2; letter-spacing: -.08em; text-shadow: 1px 2px 2px #610000; background: linear-gradient(#e90000 0 12%, #b60000 44%, #e00000 79%, #a20000); border: 2px solid #f8b62c; box-shadow: inset 0 1px #fff6a3, 0 4px 8px rgba(133,93,60,.44); transform: skew(-9deg); }
.red-ribbon::before, .red-ribbon::after { content: ""; position: absolute; z-index: -1; top: 7px; bottom: -8px; width: 20px; background: #a90000; border-bottom: 2px solid #f8b62c; }
.red-ribbon::before { left: 0; transform: skew(21deg); } .red-ribbon::after { right: 0; transform: skew(-21deg); }
.red-ribbon b { color: #ffe530; font-size: 1.15em; } .red-ribbon span { display: inline-block; margin-left: 2px; color: #ffe868; }
.lead-copy { margin: 0; color: #202020; font-size: clamp(35px,7vw,53px); font-weight: 900; line-height: 1.1; letter-spacing: -.11em; text-shadow: 1px 2px #fff, 3px 4px 2px rgba(0,0,0,.267); }
.lead-copy span { color: #ee1d1d; }
h1 { margin: 3px -12px 28px; color: #f58220; font-size: clamp(58px,11.4vw,87px); font-weight: 900; line-height: 1.1; letter-spacing: -.15em; white-space: nowrap; -webkit-text-fill-color: #f58220; -webkit-text-stroke: 3px #302005; paint-order: stroke; text-shadow: 0 4px #151007, 0 7px 5px rgba(121,80,0,.55); }
.info-card { position: relative; width: min(100%,695px); margin: 0 auto; padding: 58px 14px 43px; color: #fff; background: radial-gradient(at 50% -60%, #424242, #111 45%, #030303); border: 3px solid #b98c26; border-radius: 24px; box-shadow: inset 0 0 0 4px #161616, inset 0 0 26px rgba(183,128,9,.67), 0 7px 11px rgba(118,88,44,.5); }
.info-card::before { content: ""; position: absolute; inset: 8px; border: 1px solid #d4a628; border-radius: 18px; opacity: .9; }
.gift { position: absolute; z-index: 1; top: -18px; left: 50%; font-size: 52px; line-height: 1; filter: drop-shadow(0 3px 2px #000); transform: translateX(-50%); }
.info-card p { position: relative; margin: 0; font-size: clamp(21px,4.5vw,33px); font-weight: 800; line-height: 1.5; letter-spacing: -.06em; text-shadow: 1px 2px 2px #000; }
.info-card strong { color: #ffe927; font-weight: 900; }
.info-card small { position: relative; display: block; margin-top: 15px; color: #fff; font-size: clamp(17px,3.8vw,28px); font-weight: 800; line-height: 1.3; letter-spacing: -.06em; }
.down-arrow { position: relative; z-index: 3; display: block; width: 105px; height: 61px; margin: -1px auto 8px; background: linear-gradient(135deg,#202020 0 49%,#ffdc39 50% 52%,#202020 53%); clip-path: polygon(0 0,100% 0,50% 100%); filter: drop-shadow(0 8px 5px rgba(235,189,37,.5)); }
.line-cta { display: flex; align-items: center; justify-content: center; gap: 19px; width: min(100%,740px); min-height: 166px; margin: 0 auto; padding: 18px 22px; color: #fff; text-decoration: none; text-shadow: 0 4px 4px #087900; cursor: pointer; background: radial-gradient(at 50% 0,#81ff20,#20d500 42%,#02a815); border: 5px solid #efffcf; border-radius: 75px; box-shadow: inset 0 4px #d5ff80, inset 0 -8px #068b0c, 0 0 0 4px #d6a714, 0 0 20px #ffe95b, 0 8px 12px #7a641c; transition: transform .2s, filter .2s; }
.line-cta:hover { filter: brightness(1.05); transform: translateY(-2px); } .line-cta:focus-visible { outline: 4px solid #191919; outline-offset: 5px; }
.line-mark { display: grid; place-items: center; flex: 0 0 auto; aspect-ratio: 1; width: 102px; color: #18bf20; font-family: Arial,sans-serif; font-size: 25px; font-weight: 900; letter-spacing: -.08em; text-shadow: none; background: #fff; border-radius: 50%; }
.line-cta > span:last-child { display: grid; gap: 5px; text-align: left; }.line-cta b { font-size: clamp(32px,6.8vw,56px); line-height: 1; letter-spacing: -.1em; white-space: nowrap; }.line-cta small { color: #ffe630; font-size: clamp(17px,3.6vw,28px); font-weight: 900; line-height: 1; letter-spacing: -.08em; white-space: nowrap; }
.faq-section { width: min(100%,780px); padding: 116px 18px 40px; color: #090909; background: #fff; }.faq-section h2 { margin: 0 0 46px; font-family: Arial,sans-serif; font-size: 34px; font-weight: 800; text-align: center; letter-spacing: -.03em; }.faq-list { display: grid; gap: 24px; }.faq-item { overflow: hidden; background: #fff; border-radius: 999px; box-shadow: 0 3px 11px rgba(17,17,17,.07); }.faq-item button { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 100px; padding: 24px 40px; color: #0d0d0d; font-family: inherit; font-size: clamp(20px,4.5vw,27px); font-weight: 800; letter-spacing: -.04em; text-align: left; cursor: pointer; background: transparent; border: 0; }.faq-item button b { font-family: Arial,sans-serif; font-size: 21px; font-weight: 400; }.faq-item p { display: none; margin: -3px 40px 30px; color: #444; font-size: 15px; line-height: 1.9; text-align: left; white-space: pre-line; }.faq-item.is-open { border-radius: 28px; }.faq-item.is-open p { display: block; }
@keyframes hero-reveal { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1); } }
@keyframes hero-shine { 0%, 25% { transform: translateX(-80%); } 52%, 100% { transform: translateX(80%); } }
@keyframes seal-float { 0%, 100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-10px); } }
@keyframes panel-float { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(7px); } }
@keyframes rise-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cta-glow { 0%, 100% { box-shadow: inset 0 4px #d5ff80, inset 0 -8px #068b0c, 0 0 0 4px #d6a714, 0 0 18px #ffe95b, 0 8px 12px #7a641c; } 50% { box-shadow: inset 0 4px #e6ffac, inset 0 -8px #068b0c, 0 0 0 5px #f5cf22, 0 0 34px #fff07a, 0 10px 18px #7a641c; } }
@keyframes arrow-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(10px); } }
.limited-seal { animation: seal-float 3.4s ease-in-out infinite; }
.chance-panel { animation: panel-float 3s ease-in-out infinite .45s; }
.campaign-content > * { animation: rise-in .72s both; }
.campaign-content > :nth-child(1) { animation-delay: .24s; }
.campaign-content > :nth-child(2) { animation-delay: .36s; }
.campaign-content > :nth-child(3) { animation-delay: .48s; }
.campaign-content > :nth-child(4) { animation-delay: .62s; }
.campaign-content > :nth-child(5) { animation: arrow-bounce 1.35s ease-in-out infinite 1.1s; }
.line-cta { animation: rise-in .72s both .78s, cta-glow 2.25s ease-in-out infinite 1.5s; }
.faq-section { animation: rise-in .8s both .2s; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; } }
@media (max-width: 600px) { .cash-campaign { min-height: 100svh; }.car-stage { height: 126vw; min-height: 420px; background-position: center 36%; }.limited-seal { top: 20px; left: 13px; width: 30vw; min-width: 132px; border-width: 4px; }.limited-seal span { font-size: clamp(18px,4.2vw,28px); }.limited-seal strong { font-size: clamp(27px,6.2vw,43px); }.limited-seal b { font-size: clamp(22px,5vw,33px); }.chance-panel { top: 43px; right: -12px; padding: 10px 19px; }.chance-panel span { font-size: clamp(19px,4.7vw,29px); }.chance-panel strong { font-size: clamp(27px,6.5vw,42px); }.campaign-content { padding: min(102vw,448px) 13px 0; }.red-ribbon { margin-bottom: 19px; }.info-card { padding-top: 50px; border-radius: 17px; }.info-card::before { border-radius: 12px; }.line-cta { min-height: 118px; padding: 12px 14px; gap: 11px; border-width: 3px; border-radius: 60px; }.line-mark { width: 71px; font-size: 18px; }.down-arrow { width: 85px; height: 51px; }.faq-section { padding: 118px 18px 40px; }.faq-section h2 { margin-bottom: 45px; }.faq-item button { padding: 23px 40px; }.faq-item p { margin-right: 32px; margin-left: 32px; } }
