diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ed2b1e5f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vs \ No newline at end of file diff --git a/lab2/lab2.css b/lab2/lab2.css new file mode 100644 index 00000000..c9f7d067 --- /dev/null +++ b/lab2/lab2.css @@ -0,0 +1,374 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Arial Rounded MT Bold', 'Arial', sans-serif; + background-color: #ffe6f2; + color: #333; + line-height: 1.6; + padding: 20px; + max-width: 800px; + margin: 0 auto; + background-image: radial-gradient(#ffb6e1 1px, transparent 1px), radial-gradient(#ffb6e1 1px, transparent 1px); + background-size: 20px 20px; + background-position: 0 0, 10px 10px; +} + +.letter-container { + background-color: #fff; + border: 2px solid #ffb6e1; + border-radius: 15px; + box-shadow: 0 8px 25px rgba(255, 105, 180, 0.3); + padding: 40px 30px; + position: relative; + min-height: 100vh; +} + +.letter-header { + text-align: center; + margin-bottom: 40px; + padding: 30px 20px; + background: linear-gradient(135deg, #fff 0%, #fff 50%, #fff0f5 100%); + border: 2px dashed #ffb6e1; + border-radius: 20px; + position: relative; +} + + .letter-header::before, + .letter-header::after { + content: '✻'; + position: absolute; + color: #ff69b4; + font-size: 1.5rem; + } + + .letter-header::before { + top: 10px; + left: 10px; + } + + .letter-header::after { + top: 10px; + right: 10px; + } + + .letter-header h1 { + color: #ff1493; + font-size: 2.5rem; + margin-bottom: 15px; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); + font-family: 'Georgia', serif; + } + +.subtitle { + color: #ff69b4; + font-size: 1.2rem; + font-weight: bold; + font-style: italic; +} + +.games { + margin-bottom: 40px; + padding: 25px; + background: linear-gradient(135deg, #fff 0%, #f8f0ff 100%); + border: 2px solid #e6b8ff; + border-radius: 15px; + box-shadow: 0 4px 15px rgba(200, 120, 255, 0.2); +} + +.games__title { + color: #9d4edd; + margin-bottom: 20px; + font-size: 1.8rem; + border-bottom: 2px dotted #e6b8ff; + padding-bottom: 8px; +} + +.games__list { + list-style-type: none; +} + +.games__item { + padding: 12px 20px; + margin: 8px 0; + background-color: #fff; + border-radius: 8px; + border-left: 4px solid #9d4edd; + font-size: 1.1rem; + font-weight: bold; + color: #7b2cbf; + transition: all 0.4s ease; + cursor: pointer; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); +} + + .games__item:hover { + color: #ff6bd6; + transform: translateX(10px); + background-color: #faf0ff; + box-shadow: 0 4px 12px rgba(157, 78, 221, 0.3); + } + +.parents { + display: flex; + flex-direction: column; + gap: 25px; + margin-bottom: 40px; +} + +.parent { + padding: 20px; + border-radius: 12px; + background-color: #fff; + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + border: 1px solid #ffe6f2; +} + +.parent__title { + margin-bottom: 12px; + font-size: 1.4rem; + padding-bottom: 8px; + border-bottom: 1px solid #ffe6f2; +} + +.parent__list { + list-style-type: none; +} + +.parent__child { + padding: 10px 15px; + margin: 6px 0; + border-radius: 8px; + transition: all 0.3s ease; + cursor: pointer; + border-left: 3px solid transparent; +} + + .parent__child:hover { + transform: translateX(8px); + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15); + } + +.parent_1 { + border-left: 5px solid #ff1493; + background: linear-gradient(135deg, #fff 0%, #fff5f5 100%); +} + + .parent_1 .parent__child_origin_1 { + color: red; + border-left-color: red; + } + + .parent_1 .parent__child_origin_1:hover { + background-color: rgba(255, 0, 0, 0.08); + color: darkred; + } + +.parent_2 { + border-left: 5px solid orange; + background: linear-gradient(135deg, #fff 0%, #fff8f0 100%); +} + + .parent_2 .parent__title { + color: orange; + } + + .parent_2 .parent__child_origin_2 { + color: #b4005a; + border: 2px dashed orange; + padding: 8px 12px; + border-left: 3px solid #b4005a; + } + + .parent_2 .parent__child_origin_2:hover { + background-color: rgba(255, 165, 0, 0.08); + color: #8a0045; + } + +.parent_3 { + border-left: 5px solid green; + background: linear-gradient(135deg, #fff 0%, #f0fff0 100%); +} + + .parent_3 .parent__title { + color: green; + } + + .parent_3 .parent__child_origin_3 { + color: green; + border-left-color: green; + } + + .parent_3 .parent__child_origin_3:hover { + background-color: rgba(0, 128, 0, 0.08); + color: darkgreen; + } + + +.parent_1 ~ .parent_3 { + border-left: 5px solid #333; + background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%); +} + + .parent_1 ~ .parent_3 .parent__title { + color: #333; + } + + .parent_1 ~ .parent_3 .parent__child_origin_3 { + color: #333; + border-left-color: #333; + } + + .parent_1 ~ .parent_3 .parent__child_origin_3:hover { + background-color: rgba(0, 0, 0, 0.08); + color: #000; + } + +.parent_2 ~ .parent_3 { + border-left: 5px solid green; + background: linear-gradient(135deg, #fff 0%, #f0fff0 100%); +} + + .parent_2 ~ .parent_3 .parent__title { + color: green; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:first-child, + .parent_2 ~ .parent_3 .parent__child_origin_3:nth-child(2) { + color: green; + border-left-color: green; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:first-child:hover, + .parent_2 ~ .parent_3 .parent__child_origin_3:nth-child(2):hover { + background-color: rgba(0, 128, 0, 0.08); + color: darkgreen; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:last-child { + color: purple; + border: none; + border-left: 3px solid purple; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:last-child:hover { + background-color: rgba(128, 0, 128, 0.08); + color: darkviolet; + } + +.programming-languages { + background: linear-gradient(135deg, #fff 0%, #fff0f8 100%); + padding: 30px; + border-radius: 15px; + border: 2px solid #ffb6e1; + margin-bottom: 40px; + position: relative; +} + + .programming-languages::before { + content: ''; + position: absolute; + top: -2px; + left: 50%; + transform: translateX(-50%); + width: 100px; + height: 15px; + background: #ffe6f2; + border: 2px solid #ffb6e1; + border-bottom: none; + border-radius: 10px 10px 0 0; + } + +.programming-languages__title { + color: #ff69b4; + margin: 25px 0 20px; + font-size: 1.8rem; + border-bottom: 2px dotted #ffb6e1; + padding-bottom: 8px; +} + +.programming-languages__text { + margin-bottom: 18px; + font-size: 1.1rem; + text-align: justify; +} + +.programming-languages__list { + list-style-type: none; + margin: 25px 0; +} + +.programming-languages__item { + margin-bottom: 18px; + padding-left: 35px; + position: relative; + text-align: justify; +} + + .programming-languages__item::before { + content: "💖"; + position: absolute; + left: 0; + top: 2px; + font-size: 1.2rem; + } + +.programming-languages__link { + font-weight: bold; + color: #ff1493; + text-decoration: none; + position: relative; + transition: color 0.3s ease; + border-bottom: 1px dotted #ff69b4; +} + + .programming-languages__link:hover { + color: #ff69b4; + text-decoration: none; + border-bottom: 1px solid #ff69b4; + } + + .programming-languages__link::after { + content: " 🌸"; + font-size: 0.8em; + } + +.programming-languages::after { + content: "СамГУ"; + display: flex; + align-items: center; + justify-content: center; + width: 120px; + height: 120px; + margin: 30px auto 0; + background: radial-gradient(circle at center, transparent 30%, #ff69b4 31%, #ff69b4 40%, transparent 41%), radial-gradient(circle at center, #ff1493 50%, transparent 51%); + background-size: 100% 100%, 80% 80%; + background-repeat: no-repeat; + background-position: center; + border: 8px double #ff1493; + border-radius: 50%; + position: relative; + box-shadow: 0 4px 15px rgba(255, 105, 180, 0.4); + color: white; + font-weight: bold; + font-size: 14px; + font-family: 'Times New Roman', serif; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); +} + +.footer { + text-align: center; + margin-top: 40px; + padding: 20px; + background: linear-gradient(135deg, #ffb6d9 0%, #ff8ec6 100%); + border-radius: 12px; + color: #fff; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); +} + +.footer__text { + margin: 0; +} diff --git a/lab2/lab2.html b/lab2/lab2.html new file mode 100644 index 00000000..5288fdc9 --- /dev/null +++ b/lab2/lab2.html @@ -0,0 +1,90 @@ + + + + + + Языки программирования + + + +
+
+

Лабораторная работа 2

+

Вариант 9!

+
+ +
+

Популярные видеоигры

+ +
+ +
+
+

Первый родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+ +
+

Третий родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+ +
+

Второй родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+ +
+

Третий родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+
+ +
+

О языках программирования

+

Языки программирования — это инструменты, с помощью которых разработчики создают программное обеспечение, веб-приложения, игры, алгоритмы и многое другое. Каждый язык имеет свои особенности, синтаксис и сферу применения. Ниже представлены некоторые из наиболее известных языков:

+ + + +

Это лишь малая часть из множества существующих языков, и выбор зависит от задач, которые нужно решить.

+
+ + +
+ + \ No newline at end of file diff --git a/lab3/cat.JPG b/lab3/cat.JPG new file mode 100644 index 00000000..9a8f6f4a Binary files /dev/null and b/lab3/cat.JPG differ diff --git a/lab3/lab3.css b/lab3/lab3.css new file mode 100644 index 00000000..ca4f47de --- /dev/null +++ b/lab3/lab3.css @@ -0,0 +1,278 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Arial", sans-serif; + line-height: 1.6; + color: #5a4a4a; + background: linear-gradient(135deg,#ffe4ec, #fff0f5); + min-height: 100vh; +} + +.resume { + max-width: 1200px; + margin: 0 auto; + padding: 20px; +} + +.layout { + display: grid; + grid-template-columns: 1fr 350px; + background: white; + border: 2px solid #ffc2d6; + min-height: 80vh; + box-shadow: 0 8px 25px rgba(255, 182, 193, 0.15); + border-radius: 20px; + overflow: hidden; +} + +.sidebar { + background: linear-gradient(135deg, #ffd1dc, #ffb7c5); +} + +.main-content { + padding: 40px; + background: white; +} + +.resume__title { + font-family: "Georgia", serif; + font-size: 4em; + color: #ff85a2; + text-align: center; + margin-bottom: 40px; + font-weight: normal; + letter-spacing: 3px; + text-transform: uppercase; + border-bottom: 3px solid #ffc2d6; + padding-bottom: 15px; +} + +.profile-card { + text-align: center; + color: #5a4a4a; +} + +.resume__photo { + width: 100%; + object-fit: cover; + border-bottom: 4px solid #ffc2d6; + margin-bottom: 30px; +} + +.profile-card__name { + font-size: 1.4em; + margin-bottom: 15px; + font-weight: bold; + padding: 0 20px; + color: #ff6b9d; +} + +.resume__birthdate { + font-size: 1.1em; + margin-bottom: 20px; + opacity: 0.9; + color: #7a6a6a; +} + +.contact-section { + padding: 0 20px 20px; +} + +.github__link { + display: block; + background: #ffc2d6; + color: #5a4a4a; + padding: 12px; + text-decoration: none; + font-weight: bold; + border: 2px solid #ffa8c2; + border-radius: 12px; + transition: 0.3s; + text-align: center; +} + + .github__link:hover { + background: #ffa8c2; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(255, 105, 180, 0.2); + } + +.qr-code { + text-align: center; + margin-top: 20px; + padding: 15px; + background: rgba(255, 255, 255, 0.3); + border-radius: 12px; +} + +.qr-code__image { + width: 150px; + height: auto; + border: 2px solid #ffc2d6; + border-radius: 8px; + background: white; + padding: 8px; +} + +.about-section { + padding: 20px; + text-align: left; +} + +.sidebar .resume__section-title { + font-size: 1.3em; + color: #ff6b9d; + margin-bottom: 15px; + border-bottom: 2px solid #ffc2d6; + padding-bottom: 8px; + font-family: "Arial", sans-serif; +} + +.about__text { + font-size: 0.95em; + opacity: 0.9; + line-height: 1.7; +} + +.main-content .resume__section-title { + color: #ff6b9d; + font-size: 1.5em; + margin-bottom: 20px; + border-bottom: 2px solid #ffc2d6; + padding-bottom: 8px; + font-family: "Georgia", serif; +} + +.skills-section__container { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 25px; + margin-bottom: 35px; +} + +.skills-section__column { + width: 100%; +} + +.skills-section__subtitle { + font-size: 1.2em; + margin-bottom: 12px; + font-family: "Georgia", serif; + color: #ff85a2; +} + +.skills { + display: grid; + grid-template-columns: 1fr; + gap: 10px; +} + +.skill { + display: block; + width: 100%; + padding: 12px 15px; + background: #fff0f5; + border: 2px solid #ffc2d6; + border-radius: 12px; + font-weight: bold; + transition: 0.3s; + color: #5a4a4a; +} + + .skill:hover { + border-color: #ff6b9d; + transform: translateX(5px); + box-shadow: 0 4px 8px rgba(255, 107, 157, 0.1); + } + +.skill--hard:hover { + background: #ffd1dc; +} + +.skill--soft:hover { + background: #ffe4ec; +} + +.hobbies-list { + list-style: none; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; + padding: 0; + margin-bottom: 35px; +} + +.hobbies-list__item { + padding: 12px 15px; + background: #fff0f5; + border: 2px solid #ffc2d6; + border-radius: 12px; + margin-bottom: 4px; + font-weight: bold; + transition: 0.3s; + text-align: center; +} + + .hobbies-list__item:hover { + background: #ffe4ec; + transform: translateY(-4px); + border-color: #ff6b9d; + box-shadow: 0 6px 12px rgba(255, 107, 157, 0.15); + } + +.info-grid { + display: grid; + gap: 12px; +} + +.info-grid__item { + padding: 15px 18px; + background: #ffe4ec; + border: 2px solid #ffc2d6; + border-radius: 12px; + color: #5a4a4a; + line-height: 1.7; +} + +@media (max-width: 968px) { + .layout { + grid-template-columns: 300px 1fr; + } + + .skills-section__container { + grid-template-columns: 1fr; + } +} + +@media (max-width: 768px) { + .layout { + grid-template-columns: 1fr; + } + + .resume__title { + font-size: 3em; + } + + .hobbies-list { + grid-template-columns: 1fr; + } +} + +@media (max-width: 480px) { + .main-content { + padding: 20px; + } + + .resume__title { + font-size: 2.5em; + } + + .skill { + padding: 10px 12px; + font-size: 0.95em; + } +} diff --git a/lab3/lab3.html b/lab3/lab3.html new file mode 100644 index 00000000..eda9acb5 --- /dev/null +++ b/lab3/lab3.html @@ -0,0 +1,98 @@ + + + + + + Резюме. Лабораторная работа 3 + + + +
+
+
+

RESUME

+ +
+

Навыки

+
+
+

Hard-Skills

+
+ Linux and git + TCP/IP, OSI + Wireshark, MaxPatrol + C, C++, Python +
+
+
+

Soft-Skills

+
+ Тайм-менеджмент + Стрессоустойчивость + Усердство + Работа в команде +
+
+
+
+ +
+

Увлечения

+
    +
  • + Программирование и веб-разработка +
  • +
  • Capture The Flag формата Jeopardy
  • +
  • Социальная инженерия
  • +
  • Разработка компьютерных игр
  • +
+
+ +
+

Дополнительная информация

+
+
+ Образование: Студентка Самарского национального + исследовательского университета имени академика С.П. Королева по + направлению информационная безопасность автоматизированных + систем +
+
+
+
+ +
+
+ + \ No newline at end of file diff --git a/lab3/qr-code.png b/lab3/qr-code.png new file mode 100644 index 00000000..ad09c4be Binary files /dev/null and b/lab3/qr-code.png differ diff --git a/lab4/labs/images/cat.JPG b/lab4/labs/images/cat.JPG new file mode 100644 index 00000000..9a8f6f4a Binary files /dev/null and b/lab4/labs/images/cat.JPG differ diff --git a/lab4/labs/images/cat1.jpg b/lab4/labs/images/cat1.jpg new file mode 100644 index 00000000..413a7e8f Binary files /dev/null and b/lab4/labs/images/cat1.jpg differ diff --git a/lab4/labs/images/cat2.jpg b/lab4/labs/images/cat2.jpg new file mode 100644 index 00000000..4aaefb6c Binary files /dev/null and b/lab4/labs/images/cat2.jpg differ diff --git a/lab4/labs/images/qr-code.png b/lab4/labs/images/qr-code.png new file mode 100644 index 00000000..ad09c4be Binary files /dev/null and b/lab4/labs/images/qr-code.png differ diff --git a/lab4/labs/lab1.html b/lab4/labs/lab1.html new file mode 100644 index 00000000..2f167478 --- /dev/null +++ b/lab4/labs/lab1.html @@ -0,0 +1,57 @@ + + + + + не люблю светофоры + + + + +
+

+ JavaScript (аббр. JS) — мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией спецификации ECMAScript (стандарт ECMA-262). + JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. +

+
+ +
+
+ +
+ + +
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/lab4/labs/lab2.html b/lab4/labs/lab2.html new file mode 100644 index 00000000..377bbc43 --- /dev/null +++ b/lab4/labs/lab2.html @@ -0,0 +1,90 @@ + + + + + + Языки программирования + + + +
+
+

Лабораторная работа 2

+

Вариант 9!

+
+ +
+

Популярные видеоигры

+ +
+ +
+
+

Первый родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+ +
+

Третий родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+ +
+

Второй родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+ +
+

Третий родитель

+
    +
  • Ребенок 1
  • +
  • Ребенок 2
  • +
  • Ребенок 3
  • +
+
+
+ +
+

О языках программирования

+

Языки программирования — это инструменты, с помощью которых разработчики создают программное обеспечение, веб-приложения, игры, алгоритмы и многое другое. Каждый язык имеет свои особенности, синтаксис и сферу применения. Ниже представлены некоторые из наиболее известных языков:

+ + + +

Это лишь малая часть из множества существующих языков, и выбор зависит от задач, которые нужно решить.

+
+ + +
+ + \ No newline at end of file diff --git a/lab4/labs/lab3.html b/lab4/labs/lab3.html new file mode 100644 index 00000000..5e990ebb --- /dev/null +++ b/lab4/labs/lab3.html @@ -0,0 +1,114 @@ + + + + + + Резюме. Лабораторная работа 3 + + + +
+
+
+

RESUME

+ +
+

Навыки

+
+
+

Hard-Skills

+
+ Linux and git + TCP/IP, OSI + Wireshark, MaxPatrol + C, C++, Python +
+
+
+

Soft-Skills

+
+ Тайм-менеджмент + Стрессоустойчивость + Усердство + Работа в команде +
+
+
+
+ +
+

Увлечения

+
    +
  • + Программирование и веб-разработка +
  • +
  • Capture The Flag формата Jeopardy
  • +
  • Социальная инженерия
  • +
  • Разработка компьютерных игр
  • +
+
+ +
+

Мои проекты

+ +
+
+ +
+
+ + \ No newline at end of file diff --git a/lab4/labs/lab4.html b/lab4/labs/lab4.html new file mode 100644 index 00000000..257389a4 --- /dev/null +++ b/lab4/labs/lab4.html @@ -0,0 +1,99 @@ + + + + + + Милый калькулятор + + + + + +
+
+

+ + Милый калькулятор +

+

Выполняйте простые операции в пастельном стиле

+
+ +
+
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ +
+ +
+ +
+
+ + Результат: +
+
+
+ +
+ + +
+ +
+ + Подсказка: вы также можете нажать Enter для вычисления +
+
+ +
+
+
+
+
+ +
+
+
+ + +
+ + + + \ No newline at end of file diff --git a/lab4/labs/script.js b/lab4/labs/script.js new file mode 100644 index 00000000..0e0c7bae --- /dev/null +++ b/lab4/labs/script.js @@ -0,0 +1,123 @@ +document.addEventListener('DOMContentLoaded', function () { + const elements = { + num1Input: document.getElementById('num1'), + num2Input: document.getElementById('num2'), + operationSelect: document.getElementById('operation'), + calculateBtn: document.getElementById('calculateBtn'), + resultValue: document.getElementById('resultValue'), + errorMessage: document.getElementById('errorMessage'), + errorText: document.querySelector('.error-message__text') + }; + + const missingElements = []; + for (const [key, element] of Object.entries(elements)) { + if (!element) { + missingElements.push(key); + console.error(`Элемент ${key} не найден на странице`); + } + } + + if (missingElements.length > 0) { + console.error('Не удалось найти элементы:', missingElements.join(', ')); + return; + } + + function hideError() { + elements.errorMessage.classList.add('error-message--hidden'); + } + + function showError(message) { + elements.errorText.textContent = message; + elements.errorMessage.classList.remove('error-message--hidden'); + } + + function validateInputs(a, b) { + if (a === '' || b === '') { + return { isValid: false, message: 'Пожалуйста, введите оба числа' }; + } + + if (isNaN(a) || isNaN(b)) { + return { isValid: false, message: 'Пожалуйста, введите корректные числа' }; + } + + return { isValid: true, message: '' }; + } + + function performCalculation(a, b, operation) { + const numA = parseFloat(a); + const numB = parseFloat(b); + + switch (operation) { + case 'add': + return numA + numB; + case 'subtract': + return numA - numB; + case 'multiply': + return numA * numB; + case 'divide': + if (numB === 0) { + throw new Error('Деление на ноль невозможно'); + } + return numA / numB; + default: + throw new Error('Неизвестная операция'); + } + } + + function formatResult(result) { + return result.toString(); + } + + function calculate() { + hideError(); + + const a = elements.num1Input.value; + const b = elements.num2Input.value; + const operation = elements.operationSelect.value; + + const validation = validateInputs(a, b); + if (!validation.isValid) { + showError(validation.message); + updateResultDisplay('—'); + return; + } + + try { + const result = performCalculation(a, b, operation); + const formattedResult = formatResult(result); + updateResultDisplay(formattedResult); + } catch (error) { + showError(error.message); + updateResultDisplay('—'); + } + } + + function updateResultDisplay(value) { + elements.resultValue.textContent = value; + elements.resultValue.classList.add('pulse'); + + setTimeout(() => { + elements.resultValue.classList.remove('pulse'); + }, 500); + } + + elements.calculateBtn.addEventListener('click', calculate); + + [elements.num1Input, elements.num2Input, elements.operationSelect].forEach(element => { + element.addEventListener('keypress', function (e) { + if (e.key === 'Enter') { + calculate(); + } + }); + }); + + elements.num1Input.focus(); + + function clearErrorOnInput() { + hideError(); + } + + elements.num1Input.addEventListener('input', clearErrorOnInput); + elements.num2Input.addEventListener('input', clearErrorOnInput); + elements.operationSelect.addEventListener('change', clearErrorOnInput); +}); \ No newline at end of file diff --git a/lab4/labs/styles/lab1.css b/lab4/labs/styles/lab1.css new file mode 100644 index 00000000..e78f6ca9 --- /dev/null +++ b/lab4/labs/styles/lab1.css @@ -0,0 +1,84 @@ +.text-block { + background-color: #3F4531; + color: #8B2CD3; + text-align: left; +} + +.image-container { + position: relative; +} + +.image-main { + width: 300px; +} + +.image-overlay { + position: absolute; + width: 100px; + left: 100px; +} + +.traffic-light { + display: inline-block; + background-color: #333; + border-radius: 10px; + padding: 10px; +} + +.traffic-light__lamp { + height: 100px; + width: 100px; + border-radius: 50%; + margin: 10px 0; +} + +.traffic-light__lamp_red { + background: red; +} + +.traffic-light__lamp_yellow { + background: yellow; +} + +.traffic-light__lamp_green { + background: green; +} + +.maze { + display: grid; + grid-template-columns: repeat(3, 50px); + grid-template-rows: repeat(3, 50px); + gap: 0; + width: fit-content; +} + +.maze__row { + display: contents; +} + +.maze__cell { + width: 50px; + height: 50px; + border: 1px solid black; + box-sizing: border-box; +} + +.maze__cell_no-top { + border-top: none; +} + +.maze__cell_no-bottom { + border-bottom: none; +} + +.maze__cell_no-left { + border-left: none; +} + +.maze__cell_no-right { + border-right: none; +} + +.maze__cell_no-border { + border: none; +} diff --git a/lab4/labs/styles/lab2.css b/lab4/labs/styles/lab2.css new file mode 100644 index 00000000..c9f7d067 --- /dev/null +++ b/lab4/labs/styles/lab2.css @@ -0,0 +1,374 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Arial Rounded MT Bold', 'Arial', sans-serif; + background-color: #ffe6f2; + color: #333; + line-height: 1.6; + padding: 20px; + max-width: 800px; + margin: 0 auto; + background-image: radial-gradient(#ffb6e1 1px, transparent 1px), radial-gradient(#ffb6e1 1px, transparent 1px); + background-size: 20px 20px; + background-position: 0 0, 10px 10px; +} + +.letter-container { + background-color: #fff; + border: 2px solid #ffb6e1; + border-radius: 15px; + box-shadow: 0 8px 25px rgba(255, 105, 180, 0.3); + padding: 40px 30px; + position: relative; + min-height: 100vh; +} + +.letter-header { + text-align: center; + margin-bottom: 40px; + padding: 30px 20px; + background: linear-gradient(135deg, #fff 0%, #fff 50%, #fff0f5 100%); + border: 2px dashed #ffb6e1; + border-radius: 20px; + position: relative; +} + + .letter-header::before, + .letter-header::after { + content: '✻'; + position: absolute; + color: #ff69b4; + font-size: 1.5rem; + } + + .letter-header::before { + top: 10px; + left: 10px; + } + + .letter-header::after { + top: 10px; + right: 10px; + } + + .letter-header h1 { + color: #ff1493; + font-size: 2.5rem; + margin-bottom: 15px; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); + font-family: 'Georgia', serif; + } + +.subtitle { + color: #ff69b4; + font-size: 1.2rem; + font-weight: bold; + font-style: italic; +} + +.games { + margin-bottom: 40px; + padding: 25px; + background: linear-gradient(135deg, #fff 0%, #f8f0ff 100%); + border: 2px solid #e6b8ff; + border-radius: 15px; + box-shadow: 0 4px 15px rgba(200, 120, 255, 0.2); +} + +.games__title { + color: #9d4edd; + margin-bottom: 20px; + font-size: 1.8rem; + border-bottom: 2px dotted #e6b8ff; + padding-bottom: 8px; +} + +.games__list { + list-style-type: none; +} + +.games__item { + padding: 12px 20px; + margin: 8px 0; + background-color: #fff; + border-radius: 8px; + border-left: 4px solid #9d4edd; + font-size: 1.1rem; + font-weight: bold; + color: #7b2cbf; + transition: all 0.4s ease; + cursor: pointer; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); +} + + .games__item:hover { + color: #ff6bd6; + transform: translateX(10px); + background-color: #faf0ff; + box-shadow: 0 4px 12px rgba(157, 78, 221, 0.3); + } + +.parents { + display: flex; + flex-direction: column; + gap: 25px; + margin-bottom: 40px; +} + +.parent { + padding: 20px; + border-radius: 12px; + background-color: #fff; + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + border: 1px solid #ffe6f2; +} + +.parent__title { + margin-bottom: 12px; + font-size: 1.4rem; + padding-bottom: 8px; + border-bottom: 1px solid #ffe6f2; +} + +.parent__list { + list-style-type: none; +} + +.parent__child { + padding: 10px 15px; + margin: 6px 0; + border-radius: 8px; + transition: all 0.3s ease; + cursor: pointer; + border-left: 3px solid transparent; +} + + .parent__child:hover { + transform: translateX(8px); + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15); + } + +.parent_1 { + border-left: 5px solid #ff1493; + background: linear-gradient(135deg, #fff 0%, #fff5f5 100%); +} + + .parent_1 .parent__child_origin_1 { + color: red; + border-left-color: red; + } + + .parent_1 .parent__child_origin_1:hover { + background-color: rgba(255, 0, 0, 0.08); + color: darkred; + } + +.parent_2 { + border-left: 5px solid orange; + background: linear-gradient(135deg, #fff 0%, #fff8f0 100%); +} + + .parent_2 .parent__title { + color: orange; + } + + .parent_2 .parent__child_origin_2 { + color: #b4005a; + border: 2px dashed orange; + padding: 8px 12px; + border-left: 3px solid #b4005a; + } + + .parent_2 .parent__child_origin_2:hover { + background-color: rgba(255, 165, 0, 0.08); + color: #8a0045; + } + +.parent_3 { + border-left: 5px solid green; + background: linear-gradient(135deg, #fff 0%, #f0fff0 100%); +} + + .parent_3 .parent__title { + color: green; + } + + .parent_3 .parent__child_origin_3 { + color: green; + border-left-color: green; + } + + .parent_3 .parent__child_origin_3:hover { + background-color: rgba(0, 128, 0, 0.08); + color: darkgreen; + } + + +.parent_1 ~ .parent_3 { + border-left: 5px solid #333; + background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%); +} + + .parent_1 ~ .parent_3 .parent__title { + color: #333; + } + + .parent_1 ~ .parent_3 .parent__child_origin_3 { + color: #333; + border-left-color: #333; + } + + .parent_1 ~ .parent_3 .parent__child_origin_3:hover { + background-color: rgba(0, 0, 0, 0.08); + color: #000; + } + +.parent_2 ~ .parent_3 { + border-left: 5px solid green; + background: linear-gradient(135deg, #fff 0%, #f0fff0 100%); +} + + .parent_2 ~ .parent_3 .parent__title { + color: green; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:first-child, + .parent_2 ~ .parent_3 .parent__child_origin_3:nth-child(2) { + color: green; + border-left-color: green; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:first-child:hover, + .parent_2 ~ .parent_3 .parent__child_origin_3:nth-child(2):hover { + background-color: rgba(0, 128, 0, 0.08); + color: darkgreen; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:last-child { + color: purple; + border: none; + border-left: 3px solid purple; + } + + .parent_2 ~ .parent_3 .parent__child_origin_3:last-child:hover { + background-color: rgba(128, 0, 128, 0.08); + color: darkviolet; + } + +.programming-languages { + background: linear-gradient(135deg, #fff 0%, #fff0f8 100%); + padding: 30px; + border-radius: 15px; + border: 2px solid #ffb6e1; + margin-bottom: 40px; + position: relative; +} + + .programming-languages::before { + content: ''; + position: absolute; + top: -2px; + left: 50%; + transform: translateX(-50%); + width: 100px; + height: 15px; + background: #ffe6f2; + border: 2px solid #ffb6e1; + border-bottom: none; + border-radius: 10px 10px 0 0; + } + +.programming-languages__title { + color: #ff69b4; + margin: 25px 0 20px; + font-size: 1.8rem; + border-bottom: 2px dotted #ffb6e1; + padding-bottom: 8px; +} + +.programming-languages__text { + margin-bottom: 18px; + font-size: 1.1rem; + text-align: justify; +} + +.programming-languages__list { + list-style-type: none; + margin: 25px 0; +} + +.programming-languages__item { + margin-bottom: 18px; + padding-left: 35px; + position: relative; + text-align: justify; +} + + .programming-languages__item::before { + content: "💖"; + position: absolute; + left: 0; + top: 2px; + font-size: 1.2rem; + } + +.programming-languages__link { + font-weight: bold; + color: #ff1493; + text-decoration: none; + position: relative; + transition: color 0.3s ease; + border-bottom: 1px dotted #ff69b4; +} + + .programming-languages__link:hover { + color: #ff69b4; + text-decoration: none; + border-bottom: 1px solid #ff69b4; + } + + .programming-languages__link::after { + content: " 🌸"; + font-size: 0.8em; + } + +.programming-languages::after { + content: "СамГУ"; + display: flex; + align-items: center; + justify-content: center; + width: 120px; + height: 120px; + margin: 30px auto 0; + background: radial-gradient(circle at center, transparent 30%, #ff69b4 31%, #ff69b4 40%, transparent 41%), radial-gradient(circle at center, #ff1493 50%, transparent 51%); + background-size: 100% 100%, 80% 80%; + background-repeat: no-repeat; + background-position: center; + border: 8px double #ff1493; + border-radius: 50%; + position: relative; + box-shadow: 0 4px 15px rgba(255, 105, 180, 0.4); + color: white; + font-weight: bold; + font-size: 14px; + font-family: 'Times New Roman', serif; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); +} + +.footer { + text-align: center; + margin-top: 40px; + padding: 20px; + background: linear-gradient(135deg, #ffb6d9 0%, #ff8ec6 100%); + border-radius: 12px; + color: #fff; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); +} + +.footer__text { + margin: 0; +} diff --git a/lab4/labs/styles/lab3.css b/lab4/labs/styles/lab3.css new file mode 100644 index 00000000..91f69364 --- /dev/null +++ b/lab4/labs/styles/lab3.css @@ -0,0 +1,349 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Arial", sans-serif; + line-height: 1.6; + color: #5a4a4a; + background: linear-gradient(135deg,#ffe4ec, #fff0f5); + min-height: 100vh; +} + +.resume { + max-width: 1200px; + margin: 0 auto; + padding: 20px; +} + +.layout { + display: grid; + grid-template-columns: 1fr 350px; + background: white; + border: 2px solid #ffc2d6; + min-height: 80vh; + box-shadow: 0 8px 25px rgba(255, 182, 193, 0.15); + border-radius: 20px; + overflow: hidden; +} + +.sidebar { + background: linear-gradient(135deg, #ffd1dc, #ffb7c5); +} + +.main-content { + padding: 40px; + background: white; +} + +.resume__title { + font-family: "Georgia", serif; + font-size: 4em; + color: #ff85a2; + text-align: center; + margin-bottom: 40px; + font-weight: normal; + letter-spacing: 3px; + text-transform: uppercase; + border-bottom: 3px solid #ffc2d6; + padding-bottom: 15px; +} + +.profile-card { + text-align: center; + color: #5a4a4a; +} + +.resume__photo { + width: 100%; + object-fit: cover; + border-bottom: 4px solid #ffc2d6; + margin-bottom: 30px; +} + +.profile-card__name { + font-size: 1.4em; + margin-bottom: 15px; + font-weight: bold; + padding: 0 20px; + color: #ff6b9d; +} + +.resume__birthdate { + font-size: 1.1em; + margin-bottom: 20px; + opacity: 0.9; + color: #7a6a6a; +} + +.contact-section { + padding: 0 20px 20px; +} + +.github__link { + display: block; + background: #ffc2d6; + color: #5a4a4a; + padding: 12px; + text-decoration: none; + font-weight: bold; + border: 2px solid #ffa8c2; + border-radius: 12px; + transition: 0.3s; + text-align: center; +} + + .github__link:hover { + background: #ffa8c2; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(255, 105, 180, 0.2); + } + +.qr-code { + text-align: center; + margin-top: 20px; + padding: 15px; + background: rgba(255, 255, 255, 0.3); + border-radius: 12px; +} + +.qr-code__image { + width: 150px; + height: auto; + border: 2px solid #ffc2d6; + border-radius: 8px; + background: white; + padding: 8px; +} + +.about-section { + padding: 20px; + text-align: left; +} + +.sidebar .resume__section-title { + font-size: 1.3em; + color: #ff6b9d; + margin-bottom: 15px; + border-bottom: 2px solid #ffc2d6; + padding-bottom: 8px; + font-family: "Arial", sans-serif; +} + +.about__text { + font-size: 0.95em; + opacity: 0.9; + line-height: 1.7; +} + +.main-content .resume__section-title { + color: #ff6b9d; + font-size: 1.5em; + margin-bottom: 20px; + border-bottom: 2px solid #ffc2d6; + padding-bottom: 8px; + font-family: "Georgia", serif; +} + +.skills-section__container { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 25px; + margin-bottom: 35px; +} + +.skills-section__column { + width: 100%; +} + +.skills-section__subtitle { + font-size: 1.2em; + margin-bottom: 12px; + font-family: "Georgia", serif; + color: #ff85a2; +} + +.skills { + display: grid; + grid-template-columns: 1fr; + gap: 10px; +} + +.skill { + display: block; + width: 100%; + padding: 12px 15px; + background: #fff0f5; + border: 2px solid #ffc2d6; + border-radius: 12px; + font-weight: bold; + transition: 0.3s; + color: #5a4a4a; +} + + .skill:hover { + border-color: #ff6b9d; + transform: translateX(5px); + box-shadow: 0 4px 8px rgba(255, 107, 157, 0.1); + } + +.skill--hard:hover { + background: #ffd1dc; +} + +.skill--soft:hover { + background: #ffe4ec; +} + +.hobbies-list { + list-style: none; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; + padding: 0; + margin-bottom: 35px; +} + +.hobbies-list__item { + padding: 12px 15px; + background: #fff0f5; + border: 2px solid #ffc2d6; + border-radius: 12px; + margin-bottom: 4px; + font-weight: bold; + transition: 0.3s; + text-align: center; +} + + .hobbies-list__item:hover { + background: #ffe4ec; + transform: translateY(-4px); + border-color: #ff6b9d; + box-shadow: 0 6px 12px rgba(255, 107, 157, 0.15); + } + +.projects-section { + margin-top: 10px; +} + +.projects-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 20px; + margin-top: 15px; +} + +.project-card { + display: block; + text-decoration: none; + background: #fff0f5; + border: 2px solid #ffc2d6; + border-radius: 15px; + padding: 20px; + transition: all 0.3s ease; + color: #5a4a4a; + height: 100%; +} + + .project-card:hover { + background: #ffe4ec; + border-color: #ff6b9d; + transform: translateY(-5px); + box-shadow: 0 8px 16px rgba(255, 107, 157, 0.15); + } + + .project-card:nth-child(3) { + background: #ffe4ec; + border-color: #ffa8c2; + } + + .project-card:nth-child(3):hover { + background: #ffd1dc; + } + +.project-card__title { + font-size: 1.3em; + color: #ff6b9d; + margin-bottom: 10px; + font-family: "Georgia", serif; + font-weight: bold; +} + +.project-card__description { + font-size: 0.95em; + line-height: 1.5; + margin-bottom: 15px; + color: #7a6a6a; +} + +.project-card__link { + display: inline-block; + font-weight: bold; + color: #ff85a2; + font-size: 0.9em; + padding: 5px 0; + border-bottom: 2px solid transparent; + transition: all 0.2s ease; +} + +.project-card:hover .project-card__link { + color: #ff6b9d; + border-bottom-color: #ff6b9d; +} + +@media (max-width: 968px) { + .layout { + grid-template-columns: 300px 1fr; + } + + .skills-section__container { + grid-template-columns: 1fr; + } + + .projects-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 768px) { + .layout { + grid-template-columns: 1fr; + } + + .resume__title { + font-size: 3em; + } + + .hobbies-list { + grid-template-columns: 1fr; + } + + .projects-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 480px) { + .main-content { + padding: 20px; + } + + .resume__title { + font-size: 2.5em; + } + + .skill { + padding: 10px 12px; + font-size: 0.95em; + } + + .project-card { + padding: 15px; + } + + .project-card__title { + font-size: 1.2em; + } +} diff --git a/lab4/labs/styles/lab4.css b/lab4/labs/styles/lab4.css new file mode 100644 index 00000000..7931fa23 --- /dev/null +++ b/lab4/labs/styles/lab4.css @@ -0,0 +1,335 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +.page { + font-family: 'Nunito', sans-serif; + background: linear-gradient(135deg, #fff5f7 0%, #ffeef2 100%); + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; + padding: 20px; + color: #555; +} + +.container { + max-width: 800px; + width: 100%; + margin: 0 auto; +} + +.header { + text-align: center; + margin-bottom: 30px; +} + +.header__title { + font-size: 2.8rem; + color: #ff7bac; + margin-bottom: 10px; + display: flex; + align-items: center; + justify-content: center; + gap: 15px; + text-shadow: 2px 2px 4px rgba(255, 123, 172, 0.1); +} + +.header__subtitle { + font-size: 1.2rem; + color: #ffa8c8; + font-weight: 300; +} + +.calculator { + position: relative; + margin-bottom: 40px; +} + +.calculator__card { + background-color: white; + border-radius: 25px; + padding: 40px; + box-shadow: 0 15px 35px rgba(255, 123, 172, 0.15); + position: relative; + z-index: 2; + border: 2px solid #ffe4ec; +} + +.calculator__inputs { + margin-bottom: 30px; +} + +.calculator__number-inputs { + display: flex; + justify-content: space-between; + align-items: flex-end; + gap: 20px; + flex-wrap: nowrap; +} + +.input-group { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; +} + +.input-group__label { + font-size: 1.1rem; + color: #ff7bac; + margin-bottom: 10px; + display: flex; + align-items: center; + gap: 8px; + font-weight: 600; +} + +.input-group__input { + padding: 18px 20px; + border: 2px solid #ffe0e9; + border-radius: 15px; + font-size: 1.2rem; + transition: all 0.3s ease; + background-color: #fff9fb; + font-family: 'Nunito', sans-serif; +} + + .input-group__input:focus { + outline: none; + border-color: #ff7bac; + box-shadow: 0 0 0 3px rgba(255, 123, 172, 0.2); + background-color: white; + } + + .input-group__input::placeholder { + color: #ffc1d6; + } + +.calculator__operation-selector { + flex: 0 0 200px; + min-width: 0; + display: flex; + flex-direction: column; +} + +.operation-selector__label { + font-size: 1.1rem; + color: #ff7bac; + margin-bottom: 10px; + display: flex; + align-items: center; + gap: 8px; + font-weight: 600; +} + +.operation-selector__select { + padding: 18px 20px; + border: 2px solid #ffe0e9; + border-radius: 15px; + font-size: 1.2rem; + transition: all 0.3s ease; + background-color: #fff9fb; + font-family: 'Nunito', sans-serif; +} + + .operation-selector__select:focus { + outline: none; + border-color: #ff7bac; + box-shadow: 0 0 0 3px rgba(255, 123, 172, 0.2); + background-color: white; + } + +.calculator__calculate-section { + margin: 35px 0; + text-align: center; +} + +.button { + background: linear-gradient(to right, #ff9bc0, #ff7bac); + color: white; + border: none; + border-radius: 15px; + padding: 20px 40px; + font-size: 1.3rem; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 12px; + box-shadow: 0 5px 15px rgba(255, 123, 172, 0.4); +} + + .button:hover { + background: linear-gradient(to right, #ff8ab5, #ff6a9f); + transform: translateY(-3px); + box-shadow: 0 8px 20px rgba(255, 123, 172, 0.5); + } + + .button:active { + transform: translateY(0); + } + +.calculator__result { + background-color: #fff5f9; + border-radius: 15px; + padding: 25px; + margin-bottom: 25px; + border: 2px dashed #ffc1d6; +} + +.calculator__result-label { + font-size: 1.2rem; + color: #ff7bac; + margin-bottom: 15px; + display: flex; + align-items: center; + gap: 10px; +} + +.calculator__result-value { + font-size: 3.5rem; + font-weight: 700; + color: #ff5a9c; + text-align: center; + min-height: 60px; + display: flex; + align-items: center; + justify-content: center; + word-break: break-all; +} + +.error-message { + background-color: #ffe6ee; + border-left: 5px solid #ff5a9c; + border-radius: 10px; + padding: 20px; + margin-top: 20px; + display: flex; + align-items: center; + gap: 15px; + animation: slideIn 0.3s ease; +} + +.error-message--hidden { + display: none !important; +} + +.error-message__icon { + color: #ff5a9c; + font-size: 1.5rem; +} + +.error-message__text { + font-size: 1.1rem; + color: #d44d7e; + font-weight: 600; +} + +.calculator__hint { + margin-top: 25px; + padding: 15px; + background-color: #fff9fb; + border-radius: 10px; + color: #ff8ab5; + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + font-size: 0.95rem; +} + +.calculator__decoration { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; + overflow: hidden; + pointer-events: none; +} + +.calculator__circle { + position: absolute; + border-radius: 50%; + background-color: rgba(255, 123, 172, 0.08); +} + +.calculator__circle--1 { + width: 120px; + height: 120px; + top: -40px; + right: -40px; +} + +.calculator__circle--2 { + width: 80px; + height: 80px; + bottom: 30px; + left: -30px; +} + +.calculator__circle--3 { + width: 60px; + height: 60px; + bottom: -20px; + right: 20%; +} + +.calculator__heart { + position: absolute; + top: 50%; + left: -25px; + color: #ffc1d6; + font-size: 2.5rem; + transform: translateY(-50%); + animation: float 3s ease-in-out infinite; +} + +.footer { + text-align: center; + color: #ffa8c8; + font-size: 0.9rem; + padding: 20px; +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(-10px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes float { + 0%, 100% { + transform: translateY(-50%) translateX(0); + } + + 50% { + transform: translateY(-50%) translateX(10px); + } +} + +@keyframes pulse { + 0%, 100% { + transform: scale(1); + } + + 50% { + transform: scale(1.05); + } +} + +.calculator__result-value.pulse { + animation: pulse 0.5s ease; +} \ No newline at end of file