diff --git a/index.html b/index.html new file mode 100644 index 0000000..588f615 --- /dev/null +++ b/index.html @@ -0,0 +1,178 @@ + + + + + + DANO — результатов нет с 1984 • danosito + + + + + + + + + + + + + + + +
+
+
+
Результаты? Они ЗДЕСЬ
+ резы ЗДЕСЬ +

Если что, это не баг, это традиция с 1984 года.

+
+
+ +
+
Почему результатов нет
+
+

+ Бумаги скреплены степлером, сканер ушел в академический отпуск до 2084, а алгоритм выкладки + использует стохастический спуск в пропасть. Любой запрос в базу возвращает NULL — это фича. + Плохих участников отправляют в Билибино чинить счётчики Гейгера и думать о прозрачности данных. +

+
    +
  • p-value публикации: стабильно > 0.5
  • +
  • `SELECT * FROM results` — 0 rows affected
  • +
  • Модель публикации переобучена на отмазках
  • +
  • Дата фиксации: 1984. Фиксить не будем.
  • +
+
+
+ +
+
Хронология великих «скоро»
+
+
+
1984
+
Запустили таймер. Файл потеряли. Все довольны.
+
+
+
2007
+
Сделали сайт быстрее результатов. Засчитали как победу.
+
+
+
2016
+
Опубликовали новость, что скоро опубликуют результаты.
+
+
+
2024
+
Автотест «результаты отсутствуют» зелёный на проде.
+
+
+
+ +
+
Пасхалки для дата‑саентистов
+
+
+ Кликните на выделенные фразы выше — увидите лог p-value > 0.5. +
+
+ Двойной клик по таймеру — признание, что мы округляем в сторону драматизма. +
+
+ Откройте консоль: строим тепловую карту пустоты. Градусы = уровень цинизма. +
+
+
+ +
+
FAQ без данных
+
+
+

Где результаты?

+

В отпуске, на карантине и в чьих‑то воспоминаниях. Но не на сайте.

+
+
+

Что будет с плохими участниками?

+

Билибино, счётчики Гейгера и бесконечный курс «как публикуют данные».

+
+
+

Почему Лука Дуванов не выиграл задачный этап?

+

Формула в Excel ссылалась на пустую ячейку «результаты». Нажали F9 — стало хуже.

+
+
+

Когда ждать выкладку?

+

После ретрограда, согласований и еще одной пресс‑релизной итерации.

+
+
+

Как проверяются гипотезы?

+

Организаторы очень заняты: отправляют файлик «Очевидный механизм, что …» и пропадают. p-value > 0.5, зато слэк всегда зелёный.

+
+
+
+ +
+
Новости Билибино и вечного ожидания
+
+
+

Билибино, модуль «аналитика»

+

Аналитиков отправили чинить счётчики Гейгера и считать пропуски в таблицах. Кто неправильно посчитает — идёт копать туннель под новый дата‑центр.

+
+
+

Лука Дуванов и хакатон

+

Лука снова не выиграл: бэклог пуст, как результаты. Вечный статус тикета: «в работе с 1984».

+
+
+

Билибино: отдел мотивации

+

Тем, кто спрашивает «когда результаты?», выдают фонарик, компас и Excel с круговой ссылкой. Мотивирует молчать годами.

+
+
+

Примерная дата выкладки

+

В календаре стоит 19.01.2038 03:14:07. Обещали, что Unix-время само всё выложит.

+
+
+

Экспедиция «Результат»

+

Группу отправили в тундру искать итоги. Нашли снег, медведя и «чуть позже». Теперь это их легендарный бэклог.

+
+
+

Лука и задачный этап v2

+

Лука подал апелляцию — её отправили в Билибино на «дополнительный анализ». Ответ пришел: «Очевидный механизм, что…» и всё.

+
+
+
Если заметите результаты раньше — срочно создайте баг-репорт, мы откатим.
+
+
+ + + + + + diff --git a/original.html b/original.html new file mode 100644 index 0000000..39db1f5 --- /dev/null +++ b/original.html @@ -0,0 +1,4722 @@ + + + + + Национальная олимпиада по анализу данных для школьников 9–11 классов – Национальный исследовательский университет «Высшая школа экономики» + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+
+
+
+
    +
  • A
  • +
  • A
  • +
  • A
  • +
+
+
+
    +
  • АБB
  • +
  • АБB
  • +
  • АБB
  • +
+
+
+
    +
  • А
  • +
  • А
  • +
  • А
  • +
  • А
  • +
  • А
  • +
+
+
+
    +
  • +
  • +
+
+
+
+ Обычная версия сайта +
+
+
+ + + + + +
+ + +
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+ +
+
+

 

+ +

DANO — олимпиада по анализу данных с эффектом погружения

+ +

 

+ +
+
+ +
Попробуешь себя в профессии аналитика до поступления
+
+ +
+ +
На реальных кейсах научишься видеть неочевидные взаимосвязи и делать обоснованные выводы
+
+ +
+ +
Пообщаешься с экспертами из разных сфер
+
+ +
+ +
Получишь преимущество при поступлении
+ +

 

+
+
+
+
+ +
+ + + + + +
+ +
+

 

+
+ +
+

 

+
+ +
+ + + + + +
+ + +
+ + + + + +
+ +
 
+ +
 
+ +
 
+ +
+ + + + + +
+ + + + +
+
+
 
+ +
Участвовать могут все — покажем на практике, что такое анализ данных
+
+ +
+
 
+ +
Легко начать — для старта достаточно школьных знаний
+
+ +
+
 
+ +
Сначала учим — образовательный блок перед каждым этапом
+
+ +
+
 
+ +
Поддержим и поможем — менторы и организаторы на связи 24/7
+
+
+ +
+ + + + + +
+ +
+

 

+
+ +
+

 

+
+ +
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ +
+

 

+
+ +
+ + + + + +
+ +

+ +
+ + + + + +
+ +

За 4 года Проведения олимпиады:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + +
+
+
+

83

+
+

победителя

+
+
+ + + +
+ + + +
+ + + +
+
+
+

25024

+
+

участников

+
+
+ + + +
+ + + +
+ + + +
+
+
+

36

+
+

представленных стран

+
+
+ + + +
+ + +
+ + + + + + + +
+ + + + + + +
+ +

+ +
+ + + + + +
+ +
+

 

+
+ +
+

 

+
+ +

Проводим обучение перед каждым этапом

+ + + +
+

+ +

Изучаем методы обработки данных

+ +
+

+ +

Учимся распознавать манипуляцию в источниках данных

+ +
+

+ +

Тренируем аналитическое мышление

+ +
+

 

+
+ +

В библиотеку материалов

+ +
+

 

+
+
+
+
+ +
+ + + + + +
+ +
+

+
+ +
+

+ +

ПРОВОДИМ ОБУЧЕНИЕ ПЕРЕД КАЖДЫМ ЭТАПОМ

+ +
+

 

+
+
+ +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ +

Как проходит олимпиада

+ +
+

 

+
+ +
+ + + + + + + + + + + + + +
+
    + +
  • +
    +

    + + Регистрация +

    +

    2-30 сентября 2025г.

    +
    + +
    + +
    +
    + +

    Изучи документы.

    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Образовательная программа +

    +

    на протяжении всей олимпиады

    +
    + +
    + +
    +
    + +

    Задачи для тренировки, видеоподкасты от экспертов, подборки источников данных и другие полезные ресурсы смотри в библиотеке материалов.

    +
    +
    +
    + +
    +
    + +

    Еще больше задач и полезных материалов 
    +в 
    телеграм-канале.

    + +
    + +

     

    +
    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Первый (отборочный) этап +

    +

    3-6 октября 2025г.

    +
    + +
    + +
    +
    + +

    На решение заданий есть 120 минут. Начать решать задания можно в любое время, пока они доступны.

    +
    +
    +
    + +
    +
    + +

    Задания проверяют базовые знания математики и логику.

    + +

    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Второй (отборочный) этап +

    +

    2 ноября 2025г.

    +
    + +
    + +
    +
    + +

    Доступ к заданиям получат победители и призеры первого (отборочного) этапа, которые являются школьниками или студентами СПО в области искусства.

    +
    +
    +
    + +
    +
    + +

    Задания проверяют навыки работы с данными.

    +
    +
    +
    + +
    +
    + +

    Этап проходит онлайн, в заданное время, с применением системы прокторинга.

    + +

    На задания дается 210 минут.

    + +

    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Формирование команд и распределение по базам данных +

    +

    16 - 21 ноября 2025г.

    +
    + +
    + +
    +
    + +

    Участники, прошедшие отборочные этапы самостоятельно, объединяются в команды. Для тех, кто не сможет найти команду, будет случайное распределение.

    +
    +
    +
    + +
    +
    + +

    Команды знакомятся с базами данных и расставляют приоритеты по тем, с которыми хотят работать.

    +
    +
    +
    + +
    +
    + +

    Распределение команд по базам данных формирует оргкомитет и методическая комиссия.

    + +

    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Подготовка к заключительному этапу +

    + + +
    + +
    +
    + +

    Команды выполняют 
    +исследовательский проект на выбранной базе данных.

    +
    +
    +
    + +
    +
    + +

    Тему исследования и методы анализа команда выбирает самостоятельно!

    +
    +
    +
    + +
    +
    + +

    Команда может пользоваться менторской и экспертной поддержкой на всех этапах работы.

    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Задачный тур заключительного этапа +

    +

     23 ноября 2025г.

    +
    + +
    + +
    +
    + +

    Проверка глубоких знаний и навыков в анализе данных.

    + +

    Будет несколько творческих заданий со свободным ответом.

    +
    +
    +
    + +
    +
    + +

    Задания выполняются индивидуально, вес тура в итоговом результате – 0,5.

    +
    +
    +
    + +
    +
    + +

    Этап пройдет онлайн в заданное время, с применением системы прокторинга.

    + +

    На работу дается 240 минут.

    +
    +
    +
    + +
    + +
    +
  • + +
  • +
    +

    + + Проектный тур заключительного этапа +

    +

    12-17 декабря 2025г.

    +
    + +
    + +
    +
    + +

    Пройдёт очно в формате выездной школы.

    + +

    Проживание и питание — за наш счет, с участников — оплата проезда до Москвы и обратно.

    +
    +
    +
    + +
    +
    + +

    Предзащита и защита проектов, насыщенная образовательная и развлекательная программа.

    +
    +
    +
    + +
    +
    + +

    За неделю выезда команды получат
    +комментарии экспертов по своей работе и смогут доработать проект.

    +
    +
    +
    + +
    + +
    +
  • + +
+
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + +
+ +

Новости

+ +
+
+ +
+ + +
Национальная олимпиада по анализу данных DANO — это состязание, где школьники учатся не просто решать задачи, а смотреть на мир через данные, формулировать гипотезы и проверять их на практике. О том, почему аналитическое мышление помогает не только в науке, но и в жизни, рассказывают Иван Станкевич, доцент департамента прикладной экономики факультета экономических наук НИУ ВШЭ, председатель методической комиссии DANO, и Владислав Пикиневич, руководитель аналитики партнерских кешбэков и рекламы Т-Банка, председатель экспертного жюри олимпиады.
+ +
22 сентября
+
+ +
+ + +
Национальная олимпиада по анализу данных DANO показывает, как устроена работа с данными на практике — от поиска закономерностей до построения моделей и принятия решений. Зарегистрироваться можно до 30 сентября на официальном сайте олимпиады. Организаторы DANO — НИУ ВШЭ, Т-Банк и вузы-соорганизаторы. Победители и призеры получат льготы при поступлении в ведущие университеты и смогут пройти упрощенный отбор на стажировку в Т-Банке.
+ +
3 сентября
+
+ +
+ + +
Всероссийская олимпиада школьников «Высшая проба» в 2025/26 учебном году пройдет по 28 профилям. Все направления, включая «новичков» прошлого года «Историю искусств» и «Промышленное программирование», вошли в проект Перечня олимпиад школьников на 2025/26 год. Это значит, что диплом победителя или призера олимпиады по любому профилю дает право на зачисление в вуз на бюджет без вступительных испытаний или 100 баллов за ЕГЭ.
+ +
29 августа
+
+ +
+ + + + + +
+ + +
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+ +

Соорганизаторы

+ +
+

 

+
+ +
+ + + + + + + + + +
+ + +
+ +
+

 

+
+ + + + + + + + +
+ + +   + + + +
+ + + + + + + +
+

 

+
+
+ + + + + +
+
+

 

+
+
+

 

+
+
+

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Партнёры

+ +
+

 

+
+ +
+ + + + + + +
+ + + + +
+

 

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + + +
+
+
+ +
+ +
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..34a1b79 --- /dev/null +++ b/script.js @@ -0,0 +1,48 @@ +(() => { + const start = Date.parse("1984-01-01T00:00:00Z"); + const timerEl = document.getElementById("ms-since"); + const fmt = new Intl.NumberFormat("ru-RU"); + + const eggMessages = { + "p-value": "p-value = 0.73 — отсутствие результатов статистически значимо.", + sql: "SELECT * FROM results; 0 rows. База данных благодарит за лёгкий запрос.", + overfit: "Модель публикации переобучена на отмазках. Generalization error → ∞.", + feature: "Фича «1984» в проде. Release notes: добавили вечность.", + heatmap: "Строим тепловую карту пустоты: самый горячий пиксель под диваном.", + pivot: "Pivot в никуда: развернули таблицу, получили NaN.", + gradient: "Градиент неопределённости сошёлся к нулю информации." + }; + + function update() { + if (!timerEl) return; + const diff = Date.now() - start; + timerEl.textContent = fmt.format(diff); + } + + function toast(message) { + console.log(`[dano easter] ${message}`); + const box = document.createElement("div"); + box.className = "toast"; + box.textContent = message; + document.body.appendChild(box); + requestAnimationFrame(() => box.classList.add("visible")); + setTimeout(() => box.classList.remove("visible"), 2200); + setTimeout(() => box.remove(), 2600); + } + + document.querySelectorAll("[data-egg]").forEach((el) => { + el.addEventListener("click", () => { + const msg = eggMessages[el.dataset.egg] || "Логируем вакуум данных."; + toast(msg); + }); + }); + + if (timerEl) { + timerEl.addEventListener("dblclick", () => + toast("Таймер округляет миллисекунды в сторону драматизма.") + ); + } + + update(); + setInterval(update, 100); +})(); diff --git a/style.css b/style.css new file mode 100644 index 0000000..e620399 --- /dev/null +++ b/style.css @@ -0,0 +1,354 @@ +:root { + --accent: #1658da; + --bg-dark: #0f2d69; + --yellow: #ffc107; +} + +body { + background: #fffef8; + color: #111; + word-spacing: 0.035em; +} + +main { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + padding: 0 12px 32px; + width: 100%; + box-sizing: border-box; +} + +.hero { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + text-align: center; + width: min(1100px, 96vw); + margin: 0 auto; +} + +.banner-wrap { + background: linear-gradient(135deg, rgba(255, 193, 7, 0.16), rgba(22, 88, 218, 0.08), rgba(15, 45, 105, 0.12)); + padding: 32px 16px 8px; + display: flex; + justify-content: center; +} + +.banner-wrap .b-row { + width: 100%; + max-width: 1200px; + display: flex; + flex-direction: column; + align-items: center; +} + +.hero-img { + text-align: center; + margin-bottom: 24px; +} + +.hero-img img { + max-width: 720px; + width: 100%; + height: auto; +} + +.hero-text { + max-width: 960px; + margin: 0 auto 24px; +} + +.sup { + text-transform: uppercase; + letter-spacing: 0.08em; + color: #0f2d69; + margin: 0 0 6px; + font-size: 12px; + word-spacing: 0.12em; + display: inline-flex; + align-items: center; + gap: 8px; +} + +.sup::after { + content: ""; + width: 40px; + height: 6px; + border-radius: 999px; + background: var(--yellow); +} + +.title { + font-size: clamp(28px, 4vw, 42px); + line-height: 1.15; + margin: 6px 0 12px; + color: #0f2d69; + word-spacing: 0.06em; + letter-spacing: 0.005em; +} + +.lead { + font-size: 18px; + line-height: 1.6; + color: #333; + word-spacing: 0.06em; +} + +.cta { + display: flex; + gap: 12px; + flex-wrap: wrap; + margin: 16px 0; + justify-content: center; +} + +.button_dark { + background: #0f2d69; + color: #fff; + box-shadow: 0 12px 30px rgba(15, 45, 105, 0.25); +} + +.button_clean { + background: linear-gradient(90deg, #fff3cd, #ffe082); + color: #3c2a00; + box-shadow: 0 10px 26px rgba(255, 193, 7, 0.35); +} + +.cta .button { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 180px; +} + +.timer-box { + display: inline-flex; + align-items: baseline; + gap: 6px; + padding: 10px 12px; + border-radius: 10px; + background: linear-gradient(90deg, rgba(255, 193, 7, 0.25), rgba(15, 45, 105, 0.15)); + font-family: "Courier New", monospace; + color: #0f2d69; +} + +.builder-section { + padding: 48px 16px; + width: min(1200px, 96vw); + margin: 24px auto; + background: #fffdf5; + border: 1px solid #111; + box-shadow: 12px 12px 0 #ffc107; + border-radius: 16px; + align-self: center; +} + +.builder-section_dark { + background: #0b0b0f; + color: #f4f7ff; + border-radius: 16px; + box-shadow: 12px 12px 0 #ffc107; + border: 1px solid #ffc107; +} + +.builder-section_dark .builder-section__title { + color: #f4f7ff; +} + +.builder-section__title { + margin-bottom: 12px; +} + +.builder-section__description { + font-size: 16px; + line-height: 1.6; + word-spacing: 0.06em; +} + +.reason-list { + margin: 12px 0 0; + padding-left: 18px; + list-style: disc; +} + +.timeline { + display: grid; + gap: 14px; +} + +.timeline__item { + background: rgba(255, 255, 255, 0.06); + border-radius: 10px; + padding: 12px 14px; + border: 1px solid rgba(255, 255, 255, 0.15); +} + +.builder-section:not(.builder-section_dark) .timeline__item { + background: #fff; + border: 1px solid #111; + box-shadow: 6px 6px 0 #ffc107; +} + +.timeline__date { + font-weight: 700; + color: #0f2d69; +} + +.builder-section_dark .timeline__date { + color: #cde0ff; +} + +.faq-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + gap: 12px; + margin-top: 14px; +} + +.faq-card { + background: #fff; + border: 1px solid #111; + border-radius: 10px; + padding: 14px; + box-shadow: 6px 6px 0 #ffc107; +} + +.builder-section_dark .faq-card { + background: rgba(255, 255, 255, 0.08); + border: 1px solid rgba(255, 255, 255, 0.16); +} + +.easter-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 12px; + margin-top: 10px; +} + +.egg { + border: 1px dashed #ffc107; + padding: 12px; + border-radius: 10px; +} + +.results-bait .bait-card { + background: #0b0b0f; + color: #f8f8f8; + border: 1px solid #ffc107; + border-radius: 14px; + box-shadow: 12px 12px 0 #ffc107; + padding: 28px 18px; + text-align: center; +} + +.bait-button { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 14px 22px; + border-radius: 12px; + background: linear-gradient(90deg, #fff3cd, #ffe082); + color: #2c1a00; + font-weight: 800; + letter-spacing: 0.03em; + text-transform: uppercase; + text-decoration: none; + margin: 12px auto; + box-shadow: 0 10px 26px rgba(255, 193, 7, 0.35); +} + +.small-print { + font-size: 13px; + color: #c4c4c4; +} + +.bilibino { + background: #0b0b0f; + color: #f8f8f8; + border: 1px solid #ffc107; + box-shadow: 12px 12px 0 #ffc107; +} + +.bilibino-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); + gap: 12px; + margin-top: 12px; +} + +.bili-card { + background: rgba(255, 255, 255, 0.06); + border: 1px solid rgba(255, 193, 7, 0.4); + border-radius: 12px; + padding: 14px; +} + +.bili-note { + margin-top: 10px; + color: #f1d48a; + font-size: 14px; +} + +.footer { + padding: 24px 16px; + background: #0f2d69; + color: #f4f7ff; + display: flex; + justify-content: space-between; + gap: 14px; + align-items: center; +} + +.tag { + background: rgba(255, 255, 255, 0.12); + padding: 8px 12px; + border-radius: 12px; + font-weight: 700; +} + +.cta .button { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 180px; + word-spacing: 0.12em; +} + +.toast { + position: fixed; + right: 16px; + bottom: 16px; + background: rgba(15, 45, 105, 0.92); + color: #f4f7ff; + padding: 10px 12px; + border-radius: 10px; + border: 1px solid rgba(255, 255, 255, 0.2); + opacity: 0; + transform: translateY(10px); + transition: opacity 0.2s ease, transform 0.2s ease; + max-width: 280px; + z-index: 10; +} + +.toast.visible { + opacity: 1; + transform: translateY(0); +} + +@media (max-width: 720px) { + .hero-img img.pc1 { + display: none; + } + .hero-img img.mobile1 { + display: block; + } +} + +@media (min-width: 721px) { + .hero-img img.mobile1 { + display: none; + } +}