:root{
  --deep:#0a2a5e;
  --mid:#1565c0;
  --bright:#2e9fe0;
  --sky:#aee4ff;
  --foam:#eaf7ff;
  --sun:#ffd24d;
  --coral:#ff8a5c;
  --ink:#08245a;
  --white:#ffffff;
  --amz:#FF9900;
  --rule:rgba(40,52,74,.18);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Zen Maru Gothic',sans-serif;
  background:var(--deep);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto;}
.wrap{max-width:680px;margin:0 auto;padding:0 22px;}
a{color:inherit;}
button{font-family:inherit;}

/* ===================== 実テキストブロック共通 ===================== */
.serif{font-family:'Kaisei Decol',serif;}
.gothic{font-family:'Zen Maru Gothic',sans-serif;}

/* ===================== HERO ===================== */
.hero{
  position:relative;overflow:hidden;
  padding:34px 0 40px;
  background:linear-gradient(180deg,#bfeaff 0%, #7fd0f5 12%, #2e9fe0 32%, #1565c0 55%, #0a2a5e 100%);
}
.hero .rays{position:absolute;top:0;left:0;width:100%;height:220px;pointer-events:none;opacity:.5;}
.bubble{position:absolute;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);}
.hero .b1{width:34px;height:34px;left:6%;top:24%;}
.hero .b2{width:20px;height:20px;left:11%;top:34%;}
.hero .b3{width:14px;height:14px;left:16%;top:20%;}
.hero .b4{width:44px;height:44px;right:8%;top:26%;}
.hero .b5{width:22px;height:22px;right:15%;top:38%;}
.hero-inner{position:relative;z-index:3;text-align:center;}
.hero-inner .badge{display:inline-block;background:var(--sun);padding:9px 6px;border-radius:999px;
  box-shadow:0 4px 0 rgba(0,0,0,.12);transform:rotate(-2deg);margin-bottom:18px;}
.hero-inner .badge img{width:212px;height:auto;}
.hero-inner h1{line-height:0;}
.hero-inner h1 img{width:100%;max-width:601px;margin:0 auto;}

/* ===================== POEM (genkouyoshi) ===================== */
.poem-section{
  position:relative;
  background:linear-gradient(180deg,#0a2a5e 0%, #0a2a5e 100%);
  padding:0 0 36px;
}
.poem-box{
  position:relative;
  background:#ffffff;
  border-radius:14px;
  padding:26px 22px;
  box-shadow:0 8px 0 rgba(8,36,90,.18);
  border:1.5px solid rgba(40,52,74,.32);
  outline:1px solid rgba(40,52,74,.32);
  outline-offset:3px;
  overflow:hidden;
}
.poem-box::before{
  content:"";position:absolute;inset:14px 16px;z-index:1;pointer-events:none;
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI3IDIwIj4KPGcgc3Ryb2tlPSIjMjgzNDRhIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1vcGFjaXR5PSIwLjE4IiBzaGFwZS1yZW5kZXJpbmc9ImNyaXNwRWRnZXMiPgo8IS0tIOe4pue9qzog5YiX44Gu5bem56uv44Go5Y+z56uvIC0tPgo8bGluZSB4MT0iMC41IiB5MT0iMCIgeDI9IjAuNSIgeTI9IjIwIi8+CjxsaW5lIHgxPSIxOS41IiB5MT0iMCIgeDI9IjE5LjUiIHkyPSIyMCIvPgo8IS0tIOaoque9qzog5YiX44Gu5biv44Gu5Lit44Gg44GRKDAuLkNXKeOAguS4iuerr+e3mijjgr/jgqTjg6vkuIrkuIvjgafpgKPntpopIC0tPgo8bGluZSB4MT0iMCIgeTE9IjAuNSIgeDI9IjIwIiB5Mj0iMC41Ii8+CjwvZz4KPC9zdmc+");
  background-repeat:repeat;background-position:left top;
}
.poem-box > *{position:relative;z-index:2;}
.poem-lead-wrap{text-align:center;margin-bottom:16px;}
.poem-lead-wrap img{display:inline-block;padding:6px 20px;border-top:1.5px solid var(--rule);
  border-bottom:1.5px solid var(--rule);width:auto;max-width:100%;}
.poem-body-text{
  font-family:'Kaisei Decol',serif;
  font-size:15px;
  line-height:1.95;
  letter-spacing:.02em;
  color:var(--ink);
  text-align:justify;
  width:100%;
}
.poem-body-text em{font-style:normal;color:var(--coral);font-weight:700;}
.poem-close-wrap p{
  font-family:'Zen Maru Gothic';font-weight:700;color:var(--deep);
  font-size:16px;text-align:center;
}

/* ===================== CARDS ===================== */
.cards-wrap{display:flex;gap:16px;margin-top:24px;flex-wrap:wrap;}
.card{
  flex:1 1 220px;
  background:rgba(255,255,255,.14);
  border:2px dashed rgba(255,255,255,.6);
  border-radius:18px;
  padding:18px 16px;
  text-align:center;
}
.card img{margin:0 auto;}
.card .ctitle{margin-bottom:8px;}
.card p.cbody{
  font-family:'Zen Maru Gothic';font-size:14px;line-height:1.75;
  font-weight:500;color:var(--white);text-align:center;
}

/* ===================== PRIZE (muted) ===================== */
.prize-wrap{text-align:center;margin-top:28px;padding:0 8px;}
.prize-wrap img{margin:0 auto;}
.prize-wrap .plabel{margin-bottom:8px;opacity:.9;}
.prize-wrap p.pnote{
  font-family:'Kaisei Decol',serif;font-size:14px;line-height:1.85;
  color:rgba(255,255,255,.92);max-width:520px;margin:0 auto;
}

/* ===================== WAVE DIVIDERS ===================== */
.wave{display:block;width:100%;height:64px;margin-top:-2px;}
.wave svg{display:block;width:100%;height:100%;}

/* ===================== MOVIE LIST ===================== */
.list-section{
  background:linear-gradient(180deg,#bfeaff 0%, #7fd0f5 18%, #4cb3ea 45%, #2e9fe0 75%, #1f7fc4 100%);
  padding:4px 0 40px;
}
.list-head{text-align:center;margin-bottom:22px;}
.list-head .eyebrow{display:inline-block;background:var(--sun);padding:8px 6px;border-radius:999px;
  box-shadow:0 3px 0 rgba(0,0,0,.10);transform:rotate(-1.5deg);margin-bottom:14px;}
.list-head .eyebrow img{width:175px;}
.list-head h2 img{width:100%;max-width:600px;margin:0 auto;}
.list-head .sub{margin-top:12px;}
.list-head p.sub{
  font-family:'Kaisei Decol',serif;font-size:14.5px;line-height:1.85;
  color:var(--deep);max-width:600px;margin:12px auto 0;
}

.film-grid{display:flex;flex-direction:column;gap:12px;}
.film-card{
  display:flex;gap:12px;
  background:#ffffff;border:1.5px solid rgba(21,101,192,.30);
  border-radius:14px;padding:14px 16px;
  box-shadow:0 3px 0 rgba(8,36,90,.10);
  text-decoration:none;color:inherit;
  transition:transform .15s ease, box-shadow .15s ease;
}
.film-card.has-link:hover, .film-card.has-link:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 6px 12px rgba(8,36,90,.22);
}
.film-card:not(.has-link){cursor:default;}
.film-num{
  flex:0 0 auto;font-family:'Zen Maru Gothic';font-weight:900;font-size:22px;
  color:var(--coral);line-height:1;min-width:34px;
}
.film-body h3{
  font-family:'Zen Maru Gothic';font-weight:700;font-size:15px;
  line-height:1.35;color:var(--deep);
}
.film-body h3 .yr{font-weight:500;font-size:12px;color:var(--mid);margin-left:2px;}
.film-body p{
  font-family:'Zen Maru Gothic';font-size:13px;line-height:1.65;
  margin-top:5px;color:#143a64;font-weight:400;
}

.list-foot{text-align:center;margin-top:24px;}
p.list-foot{
  font-family:'Kaisei Decol',serif;font-size:13px;line-height:1.8;color:var(--deep);
}

/* ===================== FORM ===================== */
.form-section{background:var(--foam);padding:4px 0 50px;}
.form-head{text-align:center;margin-bottom:8px;}
.form-head h2 img{width:100%;max-width:600px;margin:0 auto;}
.form-head .intro{margin-top:12px;}
.form-head p.intro{
  font-family:'Kaisei Decol',serif;font-size:14.5px;line-height:1.9;
  color:var(--deep);max-width:600px;margin:12px auto 0;
}

.kform{margin-top:28px;background:#fff;border-radius:20px;padding:26px 20px 30px;
  box-shadow:0 4px 20px rgba(8,36,90,.10);border:1px solid rgba(21,101,192,.12);}
.field{margin-bottom:22px;}
.field label.flabel{display:inline-block;margin-bottom:8px;cursor:pointer;}
.field label.flabel img{display:block;}
.field .fhelp{margin-top:6px;}
.field .fhelp p{
  font-family:'Kaisei Decol',serif;font-size:12px;line-height:1.6;color:#5a6b85;
}

.finput{
  width:100%;padding:12px 14px;font-size:16px;font-family:'Zen Maru Gothic',sans-serif;
  border:1.5px solid #cfd9ea;border-radius:10px;background:#fbfdff;color:var(--deep);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.finput:focus{outline:none;border-color:var(--mid);box-shadow:0 0 0 3px rgba(21,101,192,.15);}
textarea.finput{resize:vertical;min-height:130px;line-height:1.7;}
select.finput{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%231565c0' d='M5 7l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:40px;}

.radio-row{display:flex;gap:10px;flex-wrap:wrap;}
.radio-pill{position:relative;}
.radio-pill input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0;}
.radio-pill span{display:inline-block;padding:10px 18px;border:1.5px solid #cfd9ea;border-radius:999px;
  font-size:15px;font-weight:700;color:var(--deep);background:#fbfdff;transition:.15s ease;}
.radio-pill input:checked + span{background:var(--mid);border-color:var(--mid);color:#fff;}
.radio-pill input:focus-visible + span{box-shadow:0 0 0 3px rgba(21,101,192,.25);}

#filmOtherWrap{margin-top:10px;display:none;}
#filmOtherWrap.show{display:block;}

.dropzone{
  border:2px dashed #b9cbe6;border-radius:14px;padding:22px 16px;text-align:center;
  background:#fbfdff;cursor:pointer;transition:.15s ease;
}
.dropzone.dragover{border-color:var(--mid);background:#eef5ff;}
.dropzone p.cta{
  font-family:'Zen Maru Gothic';font-weight:700;font-size:15px;color:var(--mid);
  margin-bottom:0;
}
.dropzone .icon{width:34px;height:34px;margin:0 auto 8px;opacity:.7;}
.preview{margin-top:14px;display:none;align-items:center;gap:12px;}
.preview.show{display:flex;}
.preview img.thumb{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1.5px solid #cfd9ea;}
.preview .meta{flex:1;font-size:13px;color:var(--deep);word-break:break-all;}
.preview .change{
  font-family:'Zen Maru Gothic';font-weight:700;font-size:13px;color:var(--mid);
  text-decoration:underline;background:none;border:none;cursor:pointer;padding:0;
}

.consent-row{display:flex;align-items:flex-start;gap:10px;margin-top:6px;}
.consent-row input{width:22px;height:22px;flex:0 0 auto;margin-top:2px;accent-color:var(--mid);cursor:pointer;}
.consent-row label{cursor:pointer;}
.privacy-box{margin-top:10px;}
.privacy-box p{
  font-family:'Kaisei Decol',serif;font-size:11.5px;line-height:1.8;color:#5a6b85;
}

.submit-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;padding:16px 20px;margin-top:8px;
  background:linear-gradient(100deg,var(--mid),var(--bright));
  border:none;border-radius:999px;cursor:pointer;
  box-shadow:0 5px 0 rgba(8,36,90,.28);
  transition:transform .1s ease;
}
.submit-btn:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(8,36,90,.28);}
.submit-btn img{width:172px;}
.submit-btn:disabled{opacity:.6;cursor:default;}

.form-msg{margin-top:20px;text-align:center;padding:18px;border-radius:14px;display:none;}
.form-msg.show{display:block;}
.form-msg.success{background:#eaf7ee;border:1.5px solid #9ed6ac;}
.form-msg.error{background:#fdecea;border:1.5px solid #f3b0a9;}
.form-msg p{
  font-family:'Zen Maru Gothic';font-weight:700;font-size:15px;line-height:1.7;
}
.form-msg.success p{color:var(--deep);}
.form-msg.error p{color:#c0392b;}

.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ===================== FOOTER ===================== */
footer{background:var(--deep);padding:30px 0 34px;text-align:center;}
footer img{margin:0 auto;}
footer .host{margin-bottom:8px;}

@media (max-width:520px){
  .cards-wrap{flex-direction:column;}
  .hero{padding:26px 0 32px;}
  .kform{padding:22px 14px 26px;}
}
