:root{
  --base:#23235a;
  --ink:#0f1026;
  --bg:#f5f7fb;
  --white:#fff;
  --accent:#8aa6ff;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Noto Sans JP', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', Meiryo, sans-serif;
  color:#222;
  background:var(--bg);
  line-height:1.6;
}
img{display:block;max-width:100%;height:auto}
a{color:var(--accent);text-decoration:none}
.container{
  width:min(1100px, 92%);
  margin-inline:auto;
}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--base);color:var(--white);
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.site-header .container{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 0;
}
.brand{font-weight:900;letter-spacing:.02em}
.cta{
  color:var(--base);
  background:#fff;border-radius:999px;
  padding:.5rem 1rem;font-weight:700;
}

/* Sections */
.section{padding:48px 0}
.hero,.intro,.sponsors{padding:0;background:var(--ink)}
.hero img,.intro img,.sponsors img{width:100%;height:auto}

/* Titles */
.section-title{
  font-size:clamp(20px, 2.2vw, 28px);
  margin:0 0 20px;color:var(--base);
  font-weight:900;letter-spacing:.02em;
}

/* Thumbnails grid */
.thumb-grid{
  display:grid;
  gap:20px;
  grid-template-columns:repeat(3, 1fr);
}
.thumb{background:#fff;border-radius:12px;overflow:hidden;
  box-shadow:0 8px 18px rgba(0,0,0,.07);
}
.thumb img{width:100%;height:auto;display:block}

/* Form embed (responsive iframe) */
.form-embed{
  background:#fff;border-radius:16px;
  overflow:hidden;box-shadow:0 8px 18px rgba(0,0,0,.08);
}
.form-embed iframe{
  display:block;border:0;width:100%;height:1200px;
}
.form-note{font-size:.9rem;color:#444;margin:.75rem 0 0}

/* Footer */
.site-footer{background:var(--base);color:#fff;padding:24px 0;text-align:center}

/* Responsive */
@media (max-width: 1024px){
  .thumb-grid{grid-template-columns:repeat(2, 1fr)}
  .form-embed iframe{height:1100px}
}
@media (max-width: 640px){
  .thumb-grid{grid-template-columns:1fr}
  .form-embed iframe{height:1400px}
  .site-header .container{padding:8px 0}
}
