Files

723 lines
31 KiB
HTML
Raw Permalink Normal View History

2026-07-09 14:37:35 +08:00
<!doctype html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
2026-08-07 23:50:26 +08:00
<title>水晶熱舞社|SECHSKIES 粉絲舞蹈社團</title>
2026-07-09 14:37:35 +08:00
<link rel="stylesheet" href="../assets/css/style.css">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="../assets/css/tablet.css">
<style>
/* Bootstrap Reboot 還原 */
body.crystal-dance-page {
2026-07-09 14:37:35 +08:00
background-color: var(--color-bg);
color: var(--color-text);
font-family: 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif;
line-height: 1.6;
}
h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, blockquote, hr {
2026-07-09 14:37:35 +08:00
margin: 0;
padding: 0;
}
a {
color: var(--color-text);
text-decoration: none;
}
/* 標題與內文:拉開垂直節奏,避免擠在一起 */
body.crystal-dance-page .section-title {
margin-bottom: 2rem;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .section-title::after {
margin-top: 1rem;
}
body.crystal-dance-page .section-body {
max-width: 760px;
margin: 0 auto 2.5rem;
}
body.crystal-dance-page .section-body p,
body.crystal-dance-page .form-lead {
color: var(--color-text-muted);
line-height: 1.9;
text-align: left;
margin-bottom: 1.15rem;
}
body.crystal-dance-page .section-body p:last-child {
margin-bottom: 0;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .form-lead {
max-width: 760px;
margin: 0 auto 2.5rem;
}
/* ① 認識區 */
body.crystal-dance-page #about {
text-align: center;
padding-bottom: 0;
overflow: hidden;
}
body.crystal-dance-page .category-tag {
2026-07-09 14:37:35 +08:00
display: inline-block;
background: var(--color-brand-light);
color: var(--color-brand-dark);
padding: 0.35rem 1.15rem;
2026-07-09 14:37:35 +08:00
border-radius: 999px;
font-size: 0.78rem;
2026-07-09 14:37:35 +08:00
font-weight: 700;
letter-spacing: 1px;
margin-bottom: 1.5rem;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .hero-banner {
display: block;
width: 100%;
max-width: 100%;
aspect-ratio: 21 / 9;
object-fit: cover;
border-radius: 12px;
border: 1px solid rgba(255, 204, 0, 0.22);
margin: 0 auto 2.25rem;
}
body.crystal-dance-page #about .section-title {
margin-top: 0.25rem;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .keyword-row {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 0.6rem;
margin: 2.25rem auto 2.5rem;
max-width: 640px;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .keyword-chip {
display: inline-flex;
align-items: center;
gap: 0.25rem;
background: var(--color-brand-light);
color: var(--color-brand-dark);
font-size: 0.82rem;
font-weight: 700;
padding: 0.4rem 0.9rem;
border-radius: 999px;
border: 1px solid rgba(255, 204, 0, 0.35);
}
/* 頁內導覽:深色底條(對照參考圖) */
body.crystal-dance-page .page-nav-bar {
display: flex;
flex-wrap: wrap;
justify-content: center;
2026-07-09 14:37:35 +08:00
align-items: center;
gap: 0.25rem 0;
margin: 0 -36px;
padding: 0.95rem 1.5rem;
background: var(--color-bg-raised);
border-top: 1px solid rgba(255, 204, 0, 0.2);
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .page-nav-bar a {
color: var(--color-brand);
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0.5px;
padding: 0.2rem 0.85rem;
border-right: 1px solid rgba(255, 204, 0, 0.25);
transition: color 0.2s ease;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .page-nav-bar a:last-child {
border-right: none;
}
body.crystal-dance-page .page-nav-bar a:hover {
color: var(--color-text-inverse);
}
/* ② 影片區:主影片與下方三欄同寬對齊 */
body.crystal-dance-page .video-grid {
width: 100%;
}
body.crystal-dance-page .sub-section-title {
margin-top: 3rem;
margin-bottom: 1.25rem;
font-weight: 800;
color: var(--color-brand-dark);
font-size: 1.05rem;
text-align: center;
letter-spacing: 0.08em;
}
body.crystal-dance-page .video-label {
display: block;
color: var(--color-brand-dark);
font-weight: 800;
font-size: 0.9rem;
margin-bottom: 0.75rem;
}
body.crystal-dance-page .video-feature {
width: 100%;
margin-bottom: 0;
}
body.crystal-dance-page .video-feature .video-label {
text-align: left;
}
body.crystal-dance-page .video-feature .ratio,
body.crystal-dance-page .video-thumb .ratio {
2026-07-09 14:37:35 +08:00
border-radius: 10px;
overflow: hidden;
border: 1px solid rgba(255, 204, 0, 0.18);
}
body.crystal-dance-page .video-thumb {
height: 100%;
}
body.crystal-dance-page .video-thumb .video-label {
font-size: 0.85rem;
margin-bottom: 0.6rem;
2026-07-09 14:37:35 +08:00
}
body.crystal-dance-page .countdown-note {
display: block;
margin-top: 2.5rem;
text-align: center;
2026-07-09 14:37:35 +08:00
font-weight: 700;
color: var(--color-brand-dark);
font-size: 0.95rem;
letter-spacing: 0.5px;
padding: 0.75rem 1rem;
background: var(--color-surface-soft);
border-radius: 999px;
max-width: 420px;
margin-left: auto;
margin-right: auto;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
/* ③ summer-form:分階段邊框排版(風格參考見面會應援調查表,顏色用全站 token) */
body.crystal-dance-page .summer-form {
max-width: 720px;
margin: 0 auto;
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form__stage + .summer-form__stage {
margin-top: 2rem;
}
body.crystal-dance-page .summer-form__stage-title {
font-weight: 800;
color: var(--color-brand-dark);
2026-07-09 16:22:31 +08:00
font-size: 0.95rem;
letter-spacing: 0.04em;
margin-bottom: 0.75rem;
text-align: left;
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form__stage-body {
border: 1px solid rgba(255, 204, 0, 0.35);
2026-07-09 16:22:31 +08:00
border-radius: 12px;
padding: 1.5rem 1.75rem;
background: #fff;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form__stage-body--notice {
background: var(--color-surface-soft);
}
body.crystal-dance-page .summer-form__stage-body .row {
--bs-gutter-y: 1.35rem;
}
body.crystal-dance-page .summer-form .form-label {
font-weight: 700;
color: var(--color-brand-dark);
font-size: 0.9rem;
margin-bottom: 0.5rem;
}
body.crystal-dance-page .summer-form .form-control,
body.crystal-dance-page .summer-form .form-select {
border: 1px solid rgba(255, 204, 0, 0.35);
border-radius: 10px;
padding: 0.65rem 0.9rem;
background: #fff;
}
body.crystal-dance-page .summer-form .form-control:focus,
body.crystal-dance-page .summer-form .form-select:focus {
border-color: var(--color-brand);
box-shadow: 0 0 0 0.2rem rgba(255, 204, 0, 0.2);
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .form-control[type="file"] {
2026-07-09 14:37:35 +08:00
border-style: dashed;
cursor: pointer;
background: var(--color-surface-soft);
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .form-text {
2026-07-09 14:37:35 +08:00
color: var(--color-text-muted);
font-size: 0.82rem;
2026-07-09 16:22:31 +08:00
margin-top: 0.35rem;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .btn-outline-dance {
border: 1.5px solid var(--color-brand-dark);
color: var(--color-brand-dark);
2026-07-09 14:37:35 +08:00
border-radius: 999px;
font-weight: 600;
font-size: 0.88rem;
padding: 0.38rem 1rem;
background: #fff;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .btn-check:checked + .btn-outline-dance,
body.crystal-dance-page .summer-form .btn-outline-dance:hover {
background: var(--color-brand);
color: var(--color-brand-dark);
border-color: var(--color-brand-dark);
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form__option-row {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: 0.15rem;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .info-list {
2026-07-09 14:37:35 +08:00
list-style: none;
padding: 0;
2026-07-09 16:22:31 +08:00
margin: 0;
2026-07-09 14:37:35 +08:00
display: flex;
flex-direction: column;
gap: 0.85rem;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .info-list li {
color: var(--color-text-muted);
font-size: 0.9rem;
line-height: 1.75;
2026-07-09 14:37:35 +08:00
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .info-footer-text {
color: var(--color-text-muted);
font-size: 0.8rem;
opacity: 0.85;
2026-07-09 16:22:31 +08:00
margin-top: 1rem;
}
body.crystal-dance-page .summer-form__actions {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.75rem;
margin-top: 2rem;
}
2026-08-02 23:24:48 +08:00
body.crystal-dance-page .summer-form__feedback {
max-width: 860px;
margin: 0 auto 20px;
padding: 14px 18px;
border: 1px solid rgba(78, 73, 43, 0.3);
border-radius: 10px;
color: var(--color-text-dark);
background: var(--color-surface-soft);
text-align: left;
}
body.crystal-dance-page .summer-form__feedback--success {
border-color: var(--color-brand);
background: var(--color-brand-light);
}
body.crystal-dance-page .summer-form__feedback--error {
border-color: var(--color-brand-dark);
}
body.crystal-dance-page .summer-form__trap {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
2026-07-09 16:22:31 +08:00
body.crystal-dance-page .summer-form .btn-dance {
background: var(--color-brand);
color: var(--color-brand-dark);
border: none;
border-radius: 999px;
font-weight: 800;
padding: 0.8rem 1.5rem;
letter-spacing: 0.5px;
}
body.crystal-dance-page .summer-form .btn-dance:hover {
background: var(--color-brand-dark);
color: var(--color-text-inverse);
}
body.crystal-dance-page .summer-form .btn-reset-dance {
background: #fff;
color: var(--color-brand-dark);
border: 1.5px solid var(--color-brand-dark);
border-radius: 999px;
font-weight: 700;
padding: 0.8rem 1.5rem;
}
body.crystal-dance-page .summer-form .btn-reset-dance:hover {
background: var(--color-surface-soft);
}
@media (max-width: 575.98px) {
body.crystal-dance-page .summer-form__stage-body {
padding: 1.25rem 1.15rem;
}
body.crystal-dance-page .summer-form__actions {
grid-template-columns: 1fr;
}
2026-07-09 14:37:35 +08:00
}
@media (max-width: 575.98px) {
body.crystal-dance-page .page-nav-bar {
margin: 0 -20px;
padding: 0.85rem 1rem;
}
2026-07-09 14:37:35 +08:00
body.crystal-dance-page .page-nav-bar a {
font-size: 0.76rem;
padding: 0.2rem 0.55rem;
}
2026-07-09 14:37:35 +08:00
}
</style>
</head>
<body class="crystal-dance-page">
<header class="inner-page-header">
<div class="header-inner site-header-inner">
<h1 class="main-title">水晶熱舞社</h1>
<div class="subtitle-wrap">
<span class="sub-title">SECHSKIES DANCE ARCHIVE &amp; 30TH FAN PROJECT</span>
</div>
</div>
</header>
<nav class="portal-nav" aria-label="水晶男孩推廣部導覽" data-portal-nav></nav>
<canvas id="particles"></canvas>
<div class="container">
2026-07-09 14:37:35 +08:00
<!-- ① 認識水晶熱舞社 -->
<section id="about">
<img class="hero-banner" src="../assets/images/crystal-dance-hero.jpg" alt="水晶熱舞社應援視覺">
2026-08-07 23:50:26 +08:00
<span class="category-tag">水晶男孩粉絲自主成立・舞蹈社團</span>
<!-- <h2 class="section-title">由粉絲自主成立的水晶熱舞社</h2> -->
<div class="section-body">
2026-08-07 23:50:26 +08:00
<p>水晶熱舞社是由<span class="mark_b mark_y">水晶男孩粉絲自主成立</span>的舞蹈社團,從日常練舞與同好交流開始。後來其中部分成員因為持續練習 SECHSKIES 的舞蹈,被「水晶男孩應援站」邀請擔任 20 週年活動的舞蹈小組長,留下串燒聯舞與練習影片紀錄。</p>
<p>水晶歌詞社、水晶嘻哈社等其他「社」,則是我們當時為了好玩延伸出的同好稱呼。2017 年 20 週年的正式應援企劃與執行,應歸功於「水晶男孩應援站」;水晶熱舞社其中部分成員參與的是活動中的舞蹈小組工作。現在重新整理這些紀錄,並<span class="fan-journey-wave">預備在 2027/04/15 30TH 前</span>再次集合。</p>
</div>
2026-07-09 15:52:28 +08:00
<!-- <div class="keyword-row">
2026-07-09 14:37:35 +08:00
<span class="keyword-chip">💛 經典舞台</span>
<span class="keyword-chip">🕺 應援舞蹈</span>
<span class="keyword-chip">🎥 翻跳紀錄</span>
<span class="keyword-chip">💃 串燒聯舞</span>
<span class="keyword-chip">🇹🇼 台灣小黃</span>
</div>
<nav class="page-nav-bar" aria-label="頁面導覽">
<a href="#about">認識熱舞社</a>
<a href="#from-20th-to-30th">20TH 到 30TH</a>
<a href="#form-30th">應援表單</a>
2026-07-09 15:52:28 +08:00
</nav> -->
2026-07-09 14:37:35 +08:00
</section>
<!-- ② 從 20TH 到 30TH -->
<section id="from-20th-to-30th">
2026-07-09 15:52:28 +08:00
<div class="video-grid">
2026-07-09 15:52:28 +08:00
<h2 class="section-title">從 20TH 到 30TH</h2>
<div class="video-feature">
2026-07-09 15:52:28 +08:00
<!-- <span class="video-label">20TH 正式影片</span> -->
<div class="ratio ratio-16x9">
<iframe src="https://www.youtube.com/embed/fkJmOMPirBc" title="20TH 正式影片:SECHSKIES 20週年紀念串燒舞蹈"
2026-07-09 15:52:28 +08:00
allowfullscreen></iframe>
</div>
2026-07-09 16:22:31 +08:00
<div class="section-body">
2026-08-07 23:50:26 +08:00
<p>2017 年,「水晶男孩應援站」看見水晶熱舞社其中部分成員持續練舞,邀請這些成員擔任 20 週年活動的舞蹈小組長。頁面收錄的 20TH 串燒聯舞與相關影片,正是那次合作留下的紀錄;如今重新整理,是希望延續當年粉絲一起完成應援的記憶。</p>
2026-07-09 16:22:31 +08:00
</div>
2026-07-09 14:37:35 +08:00
</div>
<h3 class="sub-section-title">延伸閱讀</h3>
<div class="row g-4">
<div class="col-12 col-sm-6 col-lg-4">
<div class="video-thumb">
<div class="ratio ratio-16x9">
<iframe src="https://www.youtube.com/embed/ARi0cfpv6mE" title="20TH 預告影片"
2026-07-09 15:52:28 +08:00
allowfullscreen></iframe>
</div>
2026-07-09 15:52:28 +08:00
<span class="video-label">預告</span>
</div>
</div>
<div class="col-12 col-sm-6 col-lg-4">
<div class="video-thumb">
<div class="ratio ratio-16x9">
<iframe src="https://www.youtube.com/embed/nygNm5mtsJM" title="幕後花絮 #1"
2026-07-09 15:52:28 +08:00
allowfullscreen></iframe>
</div>
2026-07-09 15:52:28 +08:00
<span class="video-label">幕後花絮 #1</span>
</div>
</div>
<div class="col-12 col-sm-6 col-lg-4">
<div class="video-thumb">
<div class="ratio ratio-16x9">
<iframe src="https://www.youtube.com/embed/f04neSErUEY" title="幕後花絮 #2・雨中共舞"
2026-07-09 15:52:28 +08:00
allowfullscreen></iframe>
</div>
2026-07-09 15:52:28 +08:00
<span class="video-label">幕後花絮 #2・雨中共舞</span>
2026-07-09 14:37:35 +08:00
</div>
</div>
</div>
</div>
2026-07-09 15:52:28 +08:00
<!-- <h3 class="sub-section-title">30TH 應援募集</h3> -->
<div class="section-body">
<p>2027/04/15 是 SECHSKIES 出道 30 周年的日子。水晶熱舞社預計在 30TH
前重新整理舞蹈應援內容,募集想一起參與的台灣小黃,從經典舞曲、翻跳練習、影片剪輯到祝福文字,讓新的應援行動從這份表單開始累積。</p>
<p>你不需要一開始就很會跳舞,只要還記得水晶男孩的舞台、歌曲,或某個讓你入坑的瞬間,都可以在這裡留下你的參與方式。</p>
</div>
<span class="countdown-note" id="countdown">💛 距離 30TH · 2027/04/15 倒數計算中...</span>
2026-07-09 14:37:35 +08:00
</section>
<!-- ③ 30TH 應援募集表單 -->
<section id="form-30th">
<h2 class="section-title">30TH 應援募集表單</h2>
<p class="form-lead">這份表單是水晶熱舞社為 2027/04/15 30TH 預備的應援募集模組,用來整理參與者想練的歌曲、可支援的內容與想留下的祝福。</p>
2026-07-09 14:37:35 +08:00
2026-08-02 23:24:48 +08:00
<div class="summer-form__feedback" data-form-feedback hidden tabindex="-1" aria-live="polite"></div>
<form class="summer-form" action="dance-application-submit.php" method="post" enctype="multipart/form-data" data-dance-application-form>
<label class="summer-form__trap" aria-hidden="true">網站<input type="text" name="website" tabindex="-1" autocomplete="off"></label>
2026-07-09 16:22:31 +08:00
<div class="summer-form__stage">
<h3 class="summer-form__stage-title">填寫須知</h3>
<div class="summer-form__stage-body summer-form__stage-body--notice">
<ul class="info-list">
2026-08-02 23:24:48 +08:00
<li>📎 檔案格式:影片或圖片皆可,單檔上限 8 MB</li>
2026-07-09 16:22:31 +08:00
<li>🔒 這份資料僅供水晶熱舞社內部整理 30TH 應援企劃使用</li>
<li>📅 送出後若確定參與,之後會另行公告練習與錄製時間</li>
</ul>
2026-08-07 23:50:26 +08:00
<p class="info-footer-text">水晶熱舞社・30TH 應援募集</p>
2026-07-09 16:22:31 +08:00
</div>
2026-07-09 14:37:35 +08:00
</div>
2026-07-09 16:22:31 +08:00
<div class="summer-form__stage">
<h3 class="summer-form__stage-title">第一階段|參與者基本資料</h3>
<div class="summer-form__stage-body">
<div class="row g-4">
<div class="col-12 col-sm-6">
<label for="nickname" class="form-label">暱稱</label>
<input type="text" class="form-control" id="nickname" name="nickname"
2026-08-02 23:24:48 +08:00
maxlength="80" placeholder="例:熱舞小黃" required>
2026-07-09 16:22:31 +08:00
</div>
<div class="col-12 col-sm-6">
<label for="email" class="form-label">Email</label>
<input type="email" class="form-control" id="email" name="email"
2026-08-02 23:24:48 +08:00
maxlength="190" placeholder="dance@example.com" required>
2026-07-09 16:22:31 +08:00
</div>
<div class="col-12 col-sm-6">
<label for="dance_years" class="form-label">練舞經驗年數</label>
<input type="number" class="form-control" id="dance_years" name="dance_years"
min="0" max="30" placeholder="0">
</div>
<div class="col-12 col-sm-6">
<label for="available_date" class="form-label">可參與日期</label>
<input type="date" class="form-control" id="available_date" name="available_date">
</div>
</div>
2026-07-09 16:22:31 +08:00
</div>
</div>
2026-07-09 16:22:31 +08:00
<div class="summer-form__stage">
<h3 class="summer-form__stage-title">第二階段|30TH 參與意向</h3>
<div class="summer-form__stage-body">
<div class="row g-4">
<div class="col-12">
<label class="form-label d-block">是否參加過 20TH</label>
<div class="summer-form__option-row">
<input type="radio" class="btn-check" name="attended_20th"
2026-08-02 23:24:48 +08:00
id="attended_20th_yes" value="attended" autocomplete="off" required>
2026-07-09 16:22:31 +08:00
<label class="btn btn-outline-dance" for="attended_20th_yes">參加過 20TH</label>
2026-07-09 16:22:31 +08:00
<input type="radio" class="btn-check" name="attended_20th"
id="attended_20th_video" value="watched_video" autocomplete="off">
<label class="btn btn-outline-dance" for="attended_20th_video">看過 20TH 影片</label>
2026-07-09 16:22:31 +08:00
<input type="radio" class="btn-check" name="attended_20th"
id="attended_20th_first" value="first_time" autocomplete="off">
<label class="btn btn-outline-dance" for="attended_20th_first">第一次知道</label>
</div>
</div>
<div class="col-12">
<label class="form-label d-block">想參與的 30TH 內容(可複選)</label>
<div class="summer-form__option-row">
2026-08-02 23:24:48 +08:00
<input type="checkbox" class="btn-check" name="participate_content[]"
2026-07-09 16:22:31 +08:00
id="content_cover" value="cover" autocomplete="off">
<label class="btn btn-outline-dance" for="content_cover">翻跳</label>
2026-08-02 23:24:48 +08:00
<input type="checkbox" class="btn-check" name="participate_content[]"
2026-07-09 16:22:31 +08:00
id="content_medley" value="medley" autocomplete="off">
<label class="btn btn-outline-dance" for="content_medley">串燒聯舞</label>
2026-08-02 23:24:48 +08:00
<input type="checkbox" class="btn-check" name="participate_content[]"
2026-07-09 16:22:31 +08:00
id="content_blessing" value="blessing" autocomplete="off">
<label class="btn btn-outline-dance" for="content_blessing">祝福影片</label>
2026-08-02 23:24:48 +08:00
<input type="checkbox" class="btn-check" name="participate_content[]"
2026-07-09 16:22:31 +08:00
id="content_graphic" value="graphic" autocomplete="off">
<label class="btn btn-outline-dance" for="content_graphic">圖文應援</label>
2026-08-02 23:24:48 +08:00
<input type="checkbox" class="btn-check" name="participate_content[]"
2026-07-09 16:22:31 +08:00
id="content_editing" value="editing" autocomplete="off">
<label class="btn btn-outline-dance" for="content_editing">影片剪輯</label>
2026-08-02 23:24:48 +08:00
<input type="checkbox" class="btn-check" name="participate_content[]"
2026-07-09 16:22:31 +08:00
id="content_archive" value="archive" autocomplete="off">
<label class="btn btn-outline-dance" for="content_archive">資料整理</label>
</div>
</div>
</div>
2026-07-09 16:22:31 +08:00
</div>
</div>
2026-07-09 16:22:31 +08:00
<div class="summer-form__stage">
<h3 class="summer-form__stage-title">第三階段|應援內容與祝福</h3>
<div class="summer-form__stage-body">
<div class="row g-4">
<div class="col-12 col-sm-6">
<label for="song" class="form-label">想練的歌曲</label>
<select class="form-select" id="song" name="song">
<option value="" selected>請選擇歌曲</option>
<option value="couple">Couple</option>
<option value="comeback">Com' Back</option>
<option value="road_fighter">Road Fighter</option>
<option value="pom_saeng_pom_sa">Pom Saeng Pom Sa</option>
<option value="other">其他</option>
</select>
</div>
<div class="col-12 col-sm-6">
<label for="reference_file" class="form-label">上傳參考影片或圖片</label>
<input class="form-control" type="file" id="reference_file" name="reference_file"
accept="image/*,video/*">
<div class="form-text">翻跳影片、舞台照片或剪輯素材皆可</div>
</div>
<div class="col-12">
<label for="message_30th" class="form-label">想對 30TH 說的話</label>
2026-08-02 23:24:48 +08:00
<textarea class="form-control" id="message_30th" name="message_30th" rows="4" maxlength="5000"
2026-07-09 16:22:31 +08:00
placeholder="想對水晶熱舞社說的話、想貢獻的部分、想見到誰、想留下的祝福……"></textarea>
</div>
</div>
2026-07-09 14:37:35 +08:00
</div>
2026-07-09 16:22:31 +08:00
</div>
2026-07-09 16:22:31 +08:00
<div class="summer-form__actions">
<button type="reset" class="btn btn-reset-dance">重新填寫</button>
2026-08-02 23:24:48 +08:00
<button type="submit" class="btn btn-dance" data-submit-button>送出應援表單 💛</button>
2026-07-09 16:22:31 +08:00
</div>
</form>
2026-07-09 14:37:35 +08:00
</section>
</div>
2026-07-09 14:37:35 +08:00
<footer>
<p>SECHSKIES Fanpage &copy; 2026 - 黃色氣球永遠飄揚</p>
<a href="https://jekkinoopy.github.io/Portfolio/" class="studio-link" target="_blank" rel="noopener noreferrer">
Design by <span class="mark_b">Jekkinoopy Studio</span>
</a>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"></script>
<script src="../assets/js/particles.js"></script>
<script src="../assets/js/portal-nav.js"></script>
<script>
(function () {
var target = new Date('2027-04-15T00:00:00+08:00');
var now = new Date();
var diffDays = Math.ceil((target - now) / (1000 * 60 * 60 * 24));
var el = document.getElementById('countdown');
if (el) {
el.textContent = diffDays > 0
? '💛 距離 30TH · 2027/04/15 還有 ' + diffDays + ' 天'
: '💛 30TH · 2027/04/15 已經到來,一起再集合!';
}
})();
2026-08-02 23:24:48 +08:00
(function () {
var form = document.querySelector('[data-dance-application-form]');
var feedback = document.querySelector('[data-form-feedback]');
var submitButton = document.querySelector('[data-submit-button]');
var result = new URLSearchParams(window.location.search).get('form');
var messages = {
success: ['success', '已收到你的應援報名!水晶熱舞社整理後會依你留下的 Email 聯絡。'],
invalid: ['error', '有欄位尚未完成或格式不正確,請檢查後再送出。'],
file_too_large: ['error', '上傳檔案超過 8 MB,請縮小檔案後再送出。'],
file_type: ['error', '檔案格式不支援,請改用圖片、MP4、WebM 或 MOV。'],
too_many: ['error', '短時間內送出次數較多,請稍候兩分鐘再試。'],
unavailable: ['error', '目前暫時無法儲存報名,請稍後再試。']
};
function showFeedback(type, message) {
if (!feedback) return;
feedback.hidden = false;
feedback.className = 'summer-form__feedback summer-form__feedback--' + type;
feedback.textContent = message;
feedback.focus();
}
if (result && messages[result]) {
showFeedback(messages[result][0], messages[result][1]);
}
if (form) {
form.addEventListener('submit', function (event) {
var selectedContent = form.querySelectorAll('input[name="participate_content[]"]:checked');
if (!selectedContent.length) {
event.preventDefault();
showFeedback('error', '請至少選擇一項想參與的 30TH 內容。');
var firstContent = form.querySelector('input[name="participate_content[]"]');
if (firstContent) firstContent.focus();
return;
}
if (submitButton) {
submitButton.disabled = true;
submitButton.textContent = '送出中…';
}
});
}
})();
2026-07-09 14:37:35 +08:00
</script>
</body>
</html>