body{
margin:0;
font-family:sans-serif;
color:white;
background:url("https://i.imgur.com/3tnjfyb.png");
background-size:cover;
background-position:center;
background-attachment:fixed;
}

/* 中央 */

.wrapper{
max-width:640px;
margin:0 auto;
background:linear-gradient(
rgba(15,20,60,0.85),
rgba(15,20,60,0.85)
);
min-height:100vh;
box-shadow:0 20px 50px rgba(0,0,0,0.6);
overflow:hidden;
}

/* ヘッダー */

.header{
margin:0;
padding:0;
line-height:0;
}

.header img{
width:100%;
height:auto;
display:block;
}

/* 目次 */
.sidebar{
position:fixed;
top:50%;
left:calc(50% + 360px);
transform:translateY(-50%);
text-align:left;
}

.sidebar a{
display:block;
text-decoration:none;
margin:18px 0;
line-height:1.2;
background:linear-gradient(90deg,#ffffff,#6ce5ff);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

.sidebar .en{
display:block;
font-family:'Great Vibes',cursive;
font-size:22px;
}

.sidebar .jp{
display:block;
font-family:'Playfair Display',serif;
font-size:13px;
letter-spacing:1px;
}

.mobileMenu a{
display:block;
margin:20px 0;
text-decoration:none;
background:linear-gradient(90deg,#ffffff,#6ce5ff);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

.mobileMenu .en{
display:block;
font-family:'Great Vibes',cursive;
font-size:24px;
}

.mobileMenu .jp{
display:block;
font-family:'Playfair Display',serif;
font-size:14px;
letter-spacing:1px;
}

/* 見出し */

.sectionTitle{
text-align:center;
margin-bottom:40px;
background:linear-gradient(90deg,#ffffff,#6ce5ff);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

.sectionTitle .en{
display:block;
font-family:'Great Vibes',cursive;
font-size:32px;
}

.sectionTitle .jp{
display:block;
font-family:'Playfair Display',serif;
font-size:14px;
letter-spacing:2px;
margin-top:4px;
}

/* スマホ */

.menuBtn{
position:fixed;
top:20px;
right:20px;
font-size:28px;
z-index:1000;
display:none;
}

.mobileMenu{
position:fixed;
right:-100%;
top:0;
width:260px;
height:100%;
background:#111;
padding:30px;
transition:.3s;
z-index:999;
}

.mobileMenu.open{
right:0;
}

/* セクション */

section{
padding:80px 30px;
text-align:center;
}

/* カード */
.cards{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:20px;
}

.card{
width:200px;
background:rgba(255,255,255,0.1);
padding:20px;
border-radius:12px;
position:relative;
cursor:pointer;
margin:10px;
}

.title{
font-size:18px;
}

.class{
font-size:12px;
opacity:.7;
}


/* popup */

.popup{
position:fixed;
top:50%;
left:50%;
transform:translate(-50%,-50%);
background:#1b2a6b;
padding:30px;
border-radius:16px;
display:none;
z-index:1000;
width:260px;
}

.popupClose{
position:absolute;
top:-12px;
right:-12px;
width:32px;
height:32px;
border-radius:50%;
background:white;
color:#1b2a6b;
display:flex;
align-items:center;
justify-content:center;
font-weight:bold;
cursor:pointer;
box-shadow:0 4px 12px rgba(0,0,0,0.3);
}

.popupClose:hover{
transform:scale(1.1);
}
/* 上へ */

.topBtn{
position:fixed;
right:20px;
bottom:20px;
background:#000;
padding:12px;
border-radius:50%;
display:none;
cursor:pointer;
}

/* スマホ */

@media(max-width:900px){

.sidebar{display:none;}
.menuBtn{display:block;}

section{
padding:60px 20px;
}

}
@media(max-width:600px){
.cards{
grid-template-columns:1fr;
}
}

/* 筆記体 */
.date{
font-family:'Pinyon Script',cursive;
font-size:44px;
}

.month{
font-size:42px;
}

.day{
font-size:26px;
margin-left:2px;
}

.time{
font-size:20px;
margin-left:10px;
opacity:.9;
}
/* 新着 */

.news{
background:rgba(255,255,255,0.1);
padding:16px 20px;
margin:14px auto;
border-radius:16px;
border:1px solid rgba(255,255,255,0.25);
max-width:520px;
box-shadow:0 8px 20px rgba(0,0,0,0.25);
}

/* マップ */

.mapImg{
width:100%;
display:block;
border-radius:16px;
box-shadow:0 10px 30px rgba(0,0,0,0.4);
}

/* popup header */

.popupHeader{
display:flex;
justify-content:center;
align-items:center;
gap:10px;
font-size:20px;
margin-bottom:15px;
}


.footer{
text-align:center;
padding:60px 20px 40px;
}

/* 楕円ボタン */

.officialBtn{
display:block;
width:100%;
max-width:420px;
margin:0 auto 25px;
padding:16px;
border-radius:999px;
background:linear-gradient(90deg,#6a7cff,#8fd3ff);
color:white;
text-decoration:none;
font-weight:bold;
font-size:18px;
box-shadow:0 10px 25px rgba(0,0,0,0.3);
transition:.2s;
}

.officialBtn:hover{
transform:translateY(-2px);
}

/* SNS */

.snsText{
font-size:14px;
opacity:.8;
margin-bottom:10px;
}

.insta{
display:block;
margin-bottom:20px;
color:white;
text-decoration:none;
font-size:15px;
}

/* コピー */

.copy{
font-size:12px;
opacity:.6;
margin-top:10px;
}

/* SNS */
.snsIcons{
display:flex;
justify-content:center;
gap:20px;
margin-bottom:20px;
}

.snsIcon{
display:flex;
justify-content:center;
align-items:center;
width:56px;
height:56px;
border-radius:50%;
box-shadow:0 6px 20px rgba(0,0,0,0.3);
transition:.2s;
}

.snsIcon img{
width:28px;
height:28px;
}

/* Instagram */

.snsIcon.insta{
background:linear-gradient(45deg,#feda75,#d62976,#962fbf);
}

/* YouTube */

.snsIcon.youtube{
background:#ff0000;
}

.snsIcon:hover{
transform:translateY(-3px) scale(1.05);
}

/* ローディング動画 */
#loading{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:black;
overflow:hidden;
z-index:9999;
}

#loading video{
position:absolute;
left:50%;
bottom:0;
transform:translateX(-50%);
}

#loading.fadeout{
animation:fadeOut 1s forwards;
pointer-events:none;
}

/* PC 横基準 */
@media (min-aspect-ratio: 16/9){
#loading video{
width:100%;
height:auto;
}
}

/* スマホ 縦基準 */
@media (max-aspect-ratio: 16/9){
#loading video{
width:auto;
height:100%;
}
}

@keyframes fadeOut{
to{
opacity:0;
visibility:hidden;
}
}

/* 流れる文字 */
.revealText span{
display:inline-block;
opacity:0;
transform:translateY(10px);
transition:0.45s ease;
}

.revealText span.show{
opacity:1;
transform:translateY(0);
}

/*投票 */
.voteBtn{
display:inline-block;
margin-top:15px;
padding:14px 22px;
border-radius:999px;

background:linear-gradient(90deg,#4fc3ff,#7ee0ff);

color:white;
text-decoration:none;
font-weight:bold;

box-shadow:0 10px 25px rgba(0,0,0,0.35);
transition:.2s;
}

.voteBtn:hover{
transform:translateY(-3px);
box-shadow:0 14px 30px rgba(0,0,0,0.45);
}

/* =========================
   surveyページ全体
========================= */

.survey{
text-align:center;
padding:80px 30px;
color:white;
}

/* タイトル（元サイト統一） */
.surveyTitle{
font-family:'Playfair Display',serif;
font-size:36px;
letter-spacing:2px;
margin-bottom:10px;

background:linear-gradient(90deg,#ffffff,#6ce5ff);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

/* サブタイトル */
.surveySub{
font-size:14px;
opacity:0.8;
margin-bottom:40px;
letter-spacing:1px;
}

/* =========================
   3択ボタンエリア
========================= */

.voteCard{
display:block;
padding:16px 18px; /* ←ここ小さくした */
border-radius:14px;

text-decoration:none;
color:white;

background:rgba(120,220,255,0.18);
border:1px solid rgba(140,220,255,0.35);
backdrop-filter:blur(10px);

box-shadow:0 8px 20px rgba(0,0,0,0.2);

transition:.25s;
}

.voteCard h2{
margin:0 0 4px;
font-size:18px; /* 少し小さく */
}

.voteCard p{
margin:0;
font-size:13px;
opacity:0.85;
}

.voteList{
display:flex;
flex-direction:column;
gap:16px; /* ←ここが重要（間隔） */
max-width:520px;
margin:0 auto;
}

/* hover */
.voteCard:hover{
transform:translateY(-4px);
background:rgba(120,220,255,0.28);
border:1px solid rgba(160,230,255,0.55);
box-shadow:0 15px 40px rgba(80,180,255,0.25);
}

/* 押した感 */
.voteCard:active{
transform:translateY(-1px);
}

/* =========================
   右サイド目次（元サイトそのまま）
   ※そのまま流用でOK
========================= */
.sidebar{
position:fixed;
top:50%;
left:calc(50% + 360px);
transform:translateY(-50%);
text-align:left;
}

.sidebar a{
display:block;
text-decoration:none;
margin:18px 0;
line-height:1.2;
background:linear-gradient(90deg,#ffffff,#6ce5ff);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

@media(max-width:900px){

.menuBtn{
display:block;
}

.sidebar{
position:fixed;
top:0;
right:0;
left:auto;
transform:translateX(100%);
height:100%;
width:260px;
background:rgba(0,0,0,0.85);
backdrop-filter:blur(10px);
padding:30px;
transition:0.3s;
z-index:9999;
}

.sidebar.active{
transform:translateX(0);
}

}

/* 目次スクロール対応 */
.sidebar{
position:fixed;
top:50%;
left:calc(50% + 360px);
transform:translateY(-50%);
text-align:left;

max-height:80vh;
overflow-y:auto;
padding-right:10px;
}

/* スマホメニューも同じ */
.mobileMenu{
position:fixed;
right:-100%;
top:0;
width:260px;
height:100%;
background:#111;
padding:30px;
transition:.3s;
z-index:999;

overflow-y:auto;
}


/*マップボタン*/
.mapBtn{
display:inline-block;
margin-top:15px;
padding:12px 24px;
border-radius:999px;
background:linear-gradient(90deg,#6ce5ff,#8fd3ff);
color:white;
text-decoration:none;
font-size:14px;
box-shadow:0 8px 20px rgba(0,0,0,0.3);
transition:.2s;
}

.mapBtn:hover{
transform:translateY(-2px);
}

/*絞り込み*/

.projectTools{
display:flex;
justify-content:center;
gap:20px;
margin-top:-20px;
margin-bottom:20px;
}

.filterBtn,.searchBtn{
font-size:13px;
opacity:.7;
cursor:pointer;
}

.filterBox,
.searchBox{
display:none;
text-align:center;
margin-bottom:20px;
}

.filterBox button{
margin:5px;
padding:6px 12px;
border-radius:999px;
border:1px solid rgba(255,255,255,.3);
background:none;
color:white;
cursor:pointer;
}

.searchBox input{
padding:8px 14px;
border-radius:999px;
border:none;
width:220px;
}

/* carousel */
.carouselWrap{
display:flex;
align-items:center;
justify-content:center;
gap:12px;
}

.carousel{
overflow:hidden;
width:100%;
}

.slides{
display:flex;
transition:transform .6s ease;
}

.webCard{
min-width:100%;
box-sizing:border-box;

background:rgba(255,255,255,0.08);
border-radius:20px;
padding:20px;

backdrop-filter:blur(10px);
}

/* 矢印 */
.arrow{
background:rgba(255,255,255,0.1);
border:none;
color:white;
width:42px;
height:42px;
border-radius:50%;
cursor:pointer;
font-size:20px;
transition:.2s;
}

.arrow:hover{
background:rgba(255,255,255,0.2);
transform:scale(1.05);
}

/* pagination */
.pagination{
width:280px;
display:flex;
justify-content:center;
gap:12px;
list-style:none;
margin:25px auto 0;
padding:0;
}

.pagination li{
display:contents;
}

.paginationButton{
display:block;
height:12px;
border:none;
border-radius:999px;
background:#6ce5ff55;
flex-basis:100%;
transition:.35s;
}

.paginationButton.isActive{
flex-basis:200%;
background:#6ce5ff;
}