ネオンサイン点灯ヒーローNeon Sign Ignition Hero
.cg-hr-neon {
position: relative;
width: 280px;
height: 150px;
border-radius: 14px;
overflow: hidden;
background: radial-gradient(120% 100% at 50% 20%, #171334 0%, #0A0812 72%);
display: flex;
align-items: center;
justify-content: center;
}
/* 管の背後に溜まる光。点灯に合わせて広がる副次レイヤー */
.cg-hr-neon-halo {
position: absolute;
left: 50%;
top: 48%;
width: 220px;
height: 96px;
margin: -48px 0 0 -110px;
border-radius: 50%;
background: radial-gradient(closest-side, rgba(255, 61, 138, .55), rgba(255, 61, 138, 0));
filter: blur(6px);
animation: cg-hr-neon-halo 5.2s ease-in-out infinite;
}
/* 主管: 消灯 → ちらつき → 安定発光 の3段構成 */
.cg-hr-neon-line {
position: relative;
z-index: 1;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
font-size: 22px;
font-weight: 900;
letter-spacing: .2em;
color: #FFE9F2;
animation: cg-hr-neon-tube 5.2s ease-in-out infinite;
}
/* 副管: 主管が安定した後にばねで飛び出す */
.cg-hr-neon-tag {
font-size: 10px;
font-style: normal;
letter-spacing: .4em;
padding: 3px 9px 3px 13px;
border: 2px solid rgba(120, 233, 255, .9);
border-radius: 999px;
color: #DBFBFF;
box-shadow: 0 0 10px rgba(120, 233, 255, .5), inset 0 0 8px rgba(120, 233, 255, .35);
animation: cg-hr-neon-tag 5.2s cubic-bezier(.34, 1.56, .64, 1) infinite;
}
/* 床に落ちる反射。主管のちらつきと同期する */
.cg-hr-neon-floor {
position: absolute;
left: 50%;
bottom: 12px;
width: 190px;
height: 8px;
margin-left: -95px;
border-radius: 50%;
background: rgba(255, 61, 138, .75);
filter: blur(7px);
animation: cg-hr-neon-floor 5.2s ease-in-out infinite;
}
@keyframes cg-hr-neon-tube {
0%, 8% { color: #3A2B3C; text-shadow: none; }
10% { color: #FFE9F2; text-shadow: 0 0 10px rgba(255, 61, 138, .9); }
12% { color: #3A2B3C; text-shadow: none; }
16% { color: #FFE9F2; text-shadow: 0 0 12px rgba(255, 61, 138, .9); }
18% { color: #4A3346; text-shadow: none; }
26% { color: #FFE9F2; text-shadow: 0 0 8px #FF3D8A, 0 0 24px rgba(255, 61, 138, .8); }
62% { color: #FFF3F8; text-shadow: 0 0 10px #FF3D8A, 0 0 32px rgba(255, 61, 138, .85); }
100% { color: #FFE9F2; text-shadow: 0 0 8px #FF3D8A, 0 0 22px rgba(255, 61, 138, .7); }
}
@keyframes cg-hr-neon-tag {
0%, 28% { transform: scale(0) translateY(6px); opacity: 0; }
36% { transform: scale(1.18) translateY(0); opacity: 1; }
42% { transform: scale(.94); }
50%, 92% { transform: scale(1); opacity: 1; }
100% { transform: scale(1); opacity: .92; }
}
@keyframes cg-hr-neon-halo {
0%, 18% { opacity: 0; transform: scale(.6); }
26% { opacity: .95; transform: scale(1.08); }
62% { opacity: .7; transform: scale(1); }
100% { opacity: .82; transform: scale(1.03); }
}
@keyframes cg-hr-neon-floor {
0%, 8% { opacity: 0; transform: scaleX(.5); }
10% { opacity: .5; }
12%, 18% { opacity: 0; }
26% { opacity: .85; transform: scaleX(1.05); }
100% { opacity: .68; transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
/* 静止形は「点灯しきったネオン」。消灯状態で止めない */
.cg-hr-neon-halo,
.cg-hr-neon-line,
.cg-hr-neon-tag,
.cg-hr-neon-floor { animation: none; }
.cg-hr-neon-line { color: #FFE9F2; text-shadow: 0 0 8px #FF3D8A, 0 0 24px rgba(255, 61, 138, .8); }
.cg-hr-neon-halo { opacity: .82; }
.cg-hr-neon-tag { transform: none; opacity: 1; }
.cg-hr-neon-floor { opacity: .68; }
}
<section class="cg-hr-neon"><i class="cg-hr-neon-halo" aria-hidden="true"></i><p class="cg-hr-neon-line">NIGHT SHIFT<em class="cg-hr-neon-tag">OPEN</em></p><i class="cg-hr-neon-floor" aria-hidden="true"></i></section>