1+ <!DOCTYPE html>
2+ < html lang ="ru ">
3+ < head >
4+ < meta charset ="UTF-8 ">
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6+ < title > Cosmoblade | Портфолио</ title >
7+ < style >
8+ body {
9+ margin : 0 ;
10+ font-family : -apple-system, BlinkMacSystemFont, 'Segoe UI' , Roboto, sans-serif;
11+ background : linear-gradient (45deg , # 1a1a2e, # 16213e, # 0f3460 );
12+ color : # f8f9fa ;
13+ height : 100vh ;
14+ overflow : hidden;
15+ display : flex;
16+ justify-content : center;
17+ align-items : center;
18+ }
19+
20+ .mac-window {
21+ width : 85% ;
22+ max-width : 850px ;
23+ height : 75vh ;
24+ background : rgba (40 , 40 , 45 , 0.95 );
25+ backdrop-filter : blur (20px );
26+ border-radius : 16px ;
27+ box-shadow : 0 20px 40px rgba (0 , 0 , 0 , 0.5 ),
28+ 0 0 0 1px rgba (255 , 255 , 255 , 0.05 );
29+ border : 1px solid rgba (255 , 255 , 255 , 0.08 );
30+ overflow : hidden;
31+ transition : all 0.4s cubic-bezier (0.22 , 1 , 0.36 , 1 );
32+ }
33+
34+ .mac-window : hover {
35+ transform : scale (1.01 );
36+ box-shadow : 0 25px 50px rgba (0 , 0 , 0 , 0.6 ),
37+ 0 0 0 1px rgba (255 , 255 , 255 , 0.1 );
38+ }
39+
40+ .title-bar {
41+ height : 42px ;
42+ background : linear-gradient (to bottom, # 323238, # 2a2a30 );
43+ display : flex;
44+ align-items : center;
45+ padding : 0 15px ;
46+ border-bottom : 1px solid rgba (0 , 0 , 0 , 0.3 );
47+ }
48+
49+ .dots {
50+ display : flex;
51+ gap : 10px ;
52+ }
53+
54+ .dot {
55+ width : 14px ;
56+ height : 14px ;
57+ border-radius : 50% ;
58+ transition : all 0.3s ease;
59+ cursor : pointer;
60+ }
61+
62+ .dot-red { background : # ff5f57 ; box-shadow : 0 0 5px # ff5f5755 ; }
63+ .dot-yellow { background : # ffbc2e ; box-shadow : 0 0 5px # ffbc2e55 ; }
64+ .dot-green { background : # 28c840 ; box-shadow : 0 0 5px # 28c84055 ; }
65+
66+ .dot : hover {
67+ transform : scale (1.15 );
68+ }
69+
70+ .content {
71+ padding : 40px ;
72+ text-align : center;
73+ height : calc (100% - 42px );
74+ box-sizing : border-box;
75+ display : flex;
76+ flex-direction : column;
77+ align-items : center;
78+ justify-content : center;
79+ }
80+
81+ h1 {
82+ font-size : 2.8em ;
83+ margin-bottom : 20px ;
84+ background : linear-gradient (90deg , # 64f0ff, # 9089fc );
85+ -webkit-background-clip : text;
86+ background-clip : text;
87+ color : transparent;
88+ text-shadow : 0 2px 10px rgba (100 , 240 , 255 , 0.2 );
89+ letter-spacing : -0.5px ;
90+ }
91+
92+ p {
93+ font-size : 1.3em ;
94+ line-height : 1.7 ;
95+ opacity : 0.9 ;
96+ max-width : 600px ;
97+ margin : 0 auto;
98+ }
99+
100+ .icon {
101+ width : 120px ;
102+ height : 120px ;
103+ background : rgba (255 , 255 , 255 , 0.05 );
104+ border-radius : 50% ;
105+ margin : 0 auto 30px ;
106+ display : flex;
107+ align-items : center;
108+ justify-content : center;
109+ font-size : 3em ;
110+ border : 2px solid rgba (255 , 255 , 255 , 0.08 );
111+ transition : transform 0.4s , box-shadow 0.4s ;
112+ box-shadow : 0 5px 15px rgba (0 , 0 , 0 , 0.2 );
113+ }
114+
115+ .icon : hover {
116+ transform : scale (1.1 ) rotate (5deg );
117+ box-shadow : 0 10px 25px rgba (0 , 0 , 0 , 0.3 );
118+ background : rgba (255 , 255 , 255 , 0.08 );
119+ }
120+
121+ .stack {
122+ display : flex;
123+ flex-wrap : wrap;
124+ justify-content : center;
125+ gap : 12px ;
126+ margin : 30px 0 ;
127+ max-width : 600px ;
128+ }
129+
130+ .tech {
131+ background : rgba (100 , 240 , 255 , 0.1 );
132+ padding : 10px 18px ;
133+ border-radius : 24px ;
134+ font-size : 1em ;
135+ border : 1px solid rgba (100 , 240 , 255 , 0.2 );
136+ transition : all 0.3s ;
137+ cursor : default;
138+ }
139+
140+ .tech : hover {
141+ background : rgba (100 , 240 , 255 , 0.2 );
142+ transform : translateY (-3px );
143+ box-shadow : 0 5px 15px rgba (100 , 240 , 255 , 0.1 );
144+ }
145+
146+ .contact {
147+ margin-top : 40px ;
148+ font-size : 1.2em ;
149+ background : rgba (255 , 255 , 255 , 0.05 );
150+ padding : 12px 25px ;
151+ border-radius : 50px ;
152+ transition : all 0.3s ;
153+ }
154+
155+ .contact : hover {
156+ background : rgba (255 , 255 , 255 , 0.1 );
157+ }
158+
159+ .contact a {
160+ color : # 64f0ff ;
161+ text-decoration : none;
162+ transition : all 0.3s ;
163+ display : flex;
164+ align-items : center;
165+ gap : 8px ;
166+ }
167+
168+ .contact a : hover {
169+ color : # 9089fc ;
170+ text-decoration : none;
171+ }
172+
173+ .contact a ::after {
174+ content : "↗" ;
175+ font-size : 0.9em ;
176+ opacity : 0.7 ;
177+ }
178+ </ style >
179+ </ head >
180+ < body >
181+ < div class ="mac-window ">
182+ < div class ="title-bar ">
183+ < div class ="dots ">
184+ < div class ="dot dot-red "> </ div >
185+ < div class ="dot dot-yellow "> </ div >
186+ < div class ="dot dot-green "> </ div >
187+ </ div >
188+ </ div >
189+ < div class ="content ">
190+ < div class ="icon "> 🚀</ div >
191+ < h1 > Cosmoblade</ h1 >
192+ < p > 14 лет | Начинающий разработчик с фокусом на full-stack решениях</ p >
193+
194+ < div class ="stack ">
195+ < span class ="tech "> Python</ span >
196+ < span class ="tech "> JavaScript</ span >
197+ < span class ="tech "> Java</ span >
198+ < span class ="tech "> C++</ span >
199+ < span class ="tech "> Linux</ span >
200+ < span class ="tech "> HTML/CSS</ span >
201+ < span class ="tech "> Git</ span >
202+ </ div >
203+
204+ < div class ="contact ">
205+ < a href ="https://t.me/cosmoblade " target ="_blank "> Telegram: @cosmoblade</ a >
206+ </ div >
207+ </ div >
208+ </ div >
209+
210+ < script >
211+ // Анимация при клике на кнопки заголовка
212+ document . querySelectorAll ( '.dot' ) . forEach ( dot => {
213+ dot . addEventListener ( 'click' , function ( ) {
214+ this . style . transform = 'scale(0.8)' ;
215+ setTimeout ( ( ) => {
216+ this . style . transform = 'scale(1)' ;
217+ if ( this . classList . contains ( 'dot-red' ) ) {
218+ alert ( '❌ Это не закроет окно - просто красивая кнопка!' ) ;
219+ } else if ( this . classList . contains ( 'dot-yellow' ) ) {
220+ document . querySelector ( '.mac-window' ) . style . transform = 'scale(0.98)' ;
221+ setTimeout ( ( ) => {
222+ document . querySelector ( '.mac-window' ) . style . transform = 'scale(1)' ;
223+ } , 300 ) ;
224+ } else {
225+ alert ( '🚀 Добро пожаловать в моё космическое портфолио!' ) ;
226+ }
227+ } , 200 ) ;
228+ } ) ;
229+ } ) ;
230+ </ script >
231+ </ body >
232+ </ html >
0 commit comments