ネオン管が点灯する見出しNeon Sign Ignition
.cg-hd-neon {
position: relative;
display: inline-block;
margin: 0;
padding: 14px 22px 20px;
font-size: 30px;
font-weight: 800;
letter-spacing: .06em;
line-height: 1.3;
}
/* 背後のハロー: 点灯後にゆっくり呼吸する(本体と別リズムで厚みを出す) */
.cg-hd-neon .halo {
position: absolute;
inset: -6px;
border-radius: 40px;
background: radial-gradient(60% 70% at 50% 55%, rgba(232, 89, 12, .38), rgba(232, 89, 12, 0) 70%);
opacity: 0;
animation: cg-hd-neon-halo 5s ease-in-out infinite;
}
/* 文字: 消灯 → チラつき → 完全点灯 の3段。管が温まる感じを不規則な段で作る */
.cg-hd-neon .txt {
position: relative;
display: inline-block;
color: #FFE9D6;
animation: cg-hd-neon-lit 5s steps(1, end) infinite;
}
/* 下のネオン管: 点灯に合わせてばねで左から伸び切る */
.cg-hd-neon .tube {
position: absolute;
left: 22px;
right: 22px;
bottom: 10px;
height: 4px;
border-radius: 4px;
background: #E8590C;
transform: scaleX(0);
transform-origin: left center;
opacity: 0;
animation: cg-hd-neon-tube 5s cubic-bezier(.34, 1.56, .64, 1) infinite;
}
@keyframes cg-hd-neon-lit {
0%, 12% { color: #6E655C; text-shadow: none; }
14% { color: #FFE9D6; text-shadow: 0 0 6px rgba(232, 89, 12, .9), 0 0 18px rgba(232, 89, 12, .6); }
17% { color: #6E655C; text-shadow: none; }
21% { color: #FFE9D6; text-shadow: 0 0 6px rgba(232, 89, 12, .9), 0 0 16px rgba(232, 89, 12, .55); }
24% { color: #6E655C; text-shadow: none; }
30%, 88% {
color: #FFF3E8;
text-shadow:
0 0 5px rgba(255, 233, 214, .95),
0 0 14px rgba(232, 89, 12, .9),
0 0 34px rgba(232, 89, 12, .6),
0 0 62px rgba(242, 183, 7, .35);
}
94%, 100% { color: #6E655C; text-shadow: none; }
}
@keyframes cg-hd-neon-tube {
0%, 24% { transform: scaleX(0); opacity: 0; box-shadow: none; }
30% { transform: scaleX(1); opacity: 1; box-shadow: 0 0 12px rgba(232, 89, 12, .95), 0 0 30px rgba(232, 89, 12, .5); }
40%, 88% { transform: scaleX(1); opacity: 1; box-shadow: 0 0 10px rgba(232, 89, 12, .8), 0 0 26px rgba(232, 89, 12, .4); }
94%, 100% { transform: scaleX(0); opacity: 0; box-shadow: none; }
}
@keyframes cg-hd-neon-halo {
0%, 26% { opacity: 0; transform: scale(.94); }
32% { opacity: .95; transform: scale(1.04); }
55% { opacity: .55; transform: scale(1); }
78% { opacity: .9; transform: scale(1.03); }
92%, 100% { opacity: 0; transform: scale(.94); }
}
/* 動きを止めたときは「点灯し切った状態」で静止させる */
@media (prefers-reduced-motion: reduce) {
.cg-hd-neon .txt,
.cg-hd-neon .tube,
.cg-hd-neon .halo { animation: none; }
.cg-hd-neon .txt {
color: #FFF3E8;
text-shadow: 0 0 5px rgba(255, 233, 214, .95), 0 0 14px rgba(232, 89, 12, .9), 0 0 34px rgba(232, 89, 12, .6);
}
.cg-hd-neon .tube {
transform: scaleX(1);
opacity: 1;
box-shadow: 0 0 10px rgba(232, 89, 12, .8), 0 0 26px rgba(232, 89, 12, .4);
}
.cg-hd-neon .halo { opacity: .8; transform: scale(1); }
}
<h2 class="cg-hd-neon"><i class="halo" aria-hidden="true"></i><span class="txt">深夜の実験室</span><i class="tube" aria-hidden="true"></i></h2>