|
7 | 7 | } |
8 | 8 |
|
9 | 9 | .hero-main { |
| 10 | + position: relative; |
| 11 | + overflow: hidden; |
| 12 | + border-radius: var(--radius-lg); |
| 13 | + padding: 22px 22px 20px; |
| 14 | + border: 1px solid rgba(148, 163, 184, 0.45); |
10 | 15 | background: |
11 | 16 | radial-gradient( |
12 | | - circle at top left, |
13 | | - rgba(56, 189, 248, 0.25), |
| 17 | + circle at 0% 0%, |
| 18 | + rgba(56, 189, 248, 0.3), |
| 19 | + transparent 55% |
| 20 | + ), |
| 21 | + radial-gradient( |
| 22 | + circle at 100% 100%, |
| 23 | + rgba(79, 70, 229, 0.2), |
14 | 24 | transparent 60% |
15 | 25 | ), |
16 | | - rgba(15, 23, 42, 0.95); |
17 | | - border-radius: var(--radius-lg); |
18 | | - padding: 22px 22px 20px; |
19 | | - border: 1px solid var(--color-border-soft); |
20 | | - box-shadow: var(--shadow-soft); |
| 26 | + #020617; |
| 27 | + box-shadow: |
| 28 | + 0 20px 50px rgba(15, 23, 42, 0.95), |
| 29 | + 0 0 0 1px rgba(15, 23, 42, 0.9); |
| 30 | + isolation: isolate; /* 中身と背景のレイヤーを分離 */ |
| 31 | +} |
| 32 | + |
| 33 | +/* グリッド + 斜めの動き(HUD っぽい) */ |
| 34 | +.hero-main::before { |
| 35 | + content: ""; |
| 36 | + position: absolute; |
| 37 | + inset: -40%; |
| 38 | + background-image: |
| 39 | + linear-gradient( |
| 40 | + to right, |
| 41 | + rgba(148, 163, 184, 0.18) 1px, |
| 42 | + transparent 1px |
| 43 | + ), |
| 44 | + linear-gradient( |
| 45 | + to bottom, |
| 46 | + rgba(148, 163, 184, 0.12) 1px, |
| 47 | + transparent 1px |
| 48 | + ); |
| 49 | + background-size: 26px 26px; |
| 50 | + opacity: 0.35; |
| 51 | + mix-blend-mode: soft-light; |
| 52 | + transform: translate3d(0, 0, 0) rotate(5deg); |
| 53 | + animation: hero-grid-shift 26s linear infinite; |
| 54 | +} |
| 55 | + |
| 56 | +/* 軽い斜めのハイライト帯だけ入れる */ |
| 57 | +.hero-main::after { |
| 58 | + content: ""; |
| 59 | + position: absolute; |
| 60 | + top: -40%; |
| 61 | + left: -10%; |
| 62 | + width: 50%; |
| 63 | + height: 180%; |
| 64 | + background: linear-gradient( |
| 65 | + 135deg, |
| 66 | + transparent, |
| 67 | + rgba(248, 250, 252, 0.08), |
| 68 | + transparent |
| 69 | + ); |
| 70 | + opacity: 0; |
| 71 | + pointer-events: none; |
| 72 | + animation: hero-highlight-swing 5s infinite ease-in-out; |
| 73 | +} |
| 74 | + |
| 75 | +/* 中身ははっきり見せたいので、手前に出しておく */ |
| 76 | +.hero-main > * { |
| 77 | + position: relative; |
| 78 | + z-index: 1; |
| 79 | +} |
| 80 | + |
| 81 | +/* グリッドがゆっくり斜めに動く */ |
| 82 | +@keyframes hero-grid-shift { |
| 83 | + 0% { |
| 84 | + transform: translate3d(0, 0, 0) rotate(5deg); |
| 85 | + } |
| 86 | + 100% { |
| 87 | + transform: translate3d(40px, 40px, 0) rotate(5deg); |
| 88 | + } |
| 89 | +} |
| 90 | + |
| 91 | +/* ハイライト帯がゆっくり揺れるだけ */ |
| 92 | +@keyframes hero-highlight-swing { |
| 93 | + 0% { |
| 94 | + opacity: 0; |
| 95 | + transform: translateX(-10%) rotate(8deg); |
| 96 | + } |
| 97 | + 35% { |
| 98 | + opacity: 0.5; |
| 99 | + } |
| 100 | + 60% { |
| 101 | + opacity: 0; |
| 102 | + transform: translateX(15%) rotate(8deg); |
| 103 | + } |
| 104 | + 100% { |
| 105 | + opacity: 0; |
| 106 | + transform: translateX(15%) rotate(8deg); |
| 107 | + } |
21 | 108 | } |
22 | 109 |
|
23 | 110 | .hero-main h1 { |
|
72 | 159 | } |
73 | 160 |
|
74 | 161 | .btn-primary { |
75 | | - background: var(--color-accent); |
76 | | - border-color: var(--color-accent); |
| 162 | + background: |
| 163 | + radial-gradient( |
| 164 | + circle at 20% 0%, |
| 165 | + rgba(248, 250, 252, 0.15), |
| 166 | + transparent 55% |
| 167 | + ), |
| 168 | + linear-gradient(135deg, #4f46e5, #06b6d4); |
| 169 | + border-color: #4f46e5; |
77 | 170 | color: #f9fafb; |
78 | | - box-shadow: 0 10px 24px rgba(79, 70, 229, 0.6); |
| 171 | + box-shadow: 0 10px 24px rgba(79, 70, 229, 0.7); |
79 | 172 | } |
80 | 173 |
|
81 | 174 | .btn-primary:hover { |
82 | 175 | transform: translateY(-1px); |
83 | | - box-shadow: 0 16px 36px rgba(79, 70, 229, 0.8); |
| 176 | + box-shadow: 0 16px 36px rgba(79, 70, 229, 0.9); |
84 | 177 | } |
85 | 178 |
|
86 | 179 | .btn-outline { |
87 | | - background: transparent; |
88 | | - border-color: rgba(148, 163, 184, 0.55); |
| 180 | + background: rgba(15, 23, 42, 0.95); |
| 181 | + border-color: rgba(148, 163, 184, 0.7); |
89 | 182 | color: var(--color-text-muted); |
90 | 183 | } |
91 | 184 |
|
92 | 185 | .btn-outline:hover { |
93 | | - background: rgba(15, 23, 42, 0.85); |
| 186 | + background: |
| 187 | + radial-gradient( |
| 188 | + circle at 0 0, |
| 189 | + rgba(56, 189, 248, 0.2), |
| 190 | + transparent 55% |
| 191 | + ), |
| 192 | + rgba(15, 23, 42, 0.98); |
| 193 | + border-color: var(--color-accent); |
| 194 | + color: #e5e7eb; |
94 | 195 | } |
95 | 196 |
|
96 | 197 | /* サイドパネル(例:最近の更新など) */ |
|
0 commit comments