From d80baff1e1426188fac82ac09ead24665521b54d Mon Sep 17 00:00:00 2001 From: Power BI Dev Date: Fri, 22 May 2026 07:52:07 +0700 Subject: [PATCH] feat: tambah grup 06-10 (PPL-B) dan update shell halaman grup - Update index.html launcher: tambah Group 06-10 (ACAAB, LimaEm, RODA, Tapops, ApeNameTeamE) - Semua 10 halaman grup kini pakai navbar & footer identik dengan prod (Tailwind, mega menu, mobile menu) - Tambah assets/global/output.css dan localization.js untuk dukungan Tailwind dan toggle ID/EN - Buat folder dan index.html untuk Group 06-10 Co-Authored-By: Claude Sonnet 4.6 --- assets/global/localization.js | 1233 ++++++ assets/global/output.css | 5956 +++++++++++++++++++++++++++++ groups/ACAAB/index.html | 1338 +++++++ groups/ACAAB/style.css | 48 + groups/ApeNameTeamE/index.html | 1338 +++++++ groups/ApeNameTeamE/style.css | 48 + groups/C4A/index.html | 1358 ++++++- groups/HabisIniSeminar/index.html | 1358 ++++++- groups/HarusSelesaiKP/index.html | 1358 ++++++- groups/Jellyfish.Corp/index.html | 1358 ++++++- groups/LimaEm/index.html | 1338 +++++++ groups/LimaEm/style.css | 48 + groups/M4N1FEST/index.html | 1358 ++++++- groups/RODA/index.html | 1338 +++++++ groups/RODA/style.css | 48 + groups/Tapops/index.html | 1338 +++++++ groups/Tapops/style.css | 48 + index.html | 15 +- materi-git.html | 1093 ++++++ panduan-tugas.html | 1000 +++++ 20 files changed, 22812 insertions(+), 205 deletions(-) create mode 100644 assets/global/localization.js create mode 100644 assets/global/output.css create mode 100644 groups/ACAAB/index.html create mode 100644 groups/ACAAB/style.css create mode 100644 groups/ApeNameTeamE/index.html create mode 100644 groups/ApeNameTeamE/style.css create mode 100644 groups/LimaEm/index.html create mode 100644 groups/LimaEm/style.css create mode 100644 groups/RODA/index.html create mode 100644 groups/RODA/style.css create mode 100644 groups/Tapops/index.html create mode 100644 groups/Tapops/style.css create mode 100644 materi-git.html create mode 100644 panduan-tugas.html diff --git a/assets/global/localization.js b/assets/global/localization.js new file mode 100644 index 0000000..82d1ca7 --- /dev/null +++ b/assets/global/localization.js @@ -0,0 +1,1233 @@ +/** + * localization.js + * Bilingual ID/EN — auto-detect dari navigator.language, + * persist pilihan user ke localStorage. + */ + +const translations = { + id: { + // --- Common / Shared --- + skip_to_content: "Langsung ke Konten Utama", + btn_more: "Selengkapnya", + btn_view_all: "Lihat Semua", + btn_read_more: "Selengkapnya", + btn_explore: "Jelajahi", + btn_reset_filter: "Reset Filter", + loading: "Memuat...", + no_data: "Data tidak ditemukan.", + coming_soon: "Segera Hadir", + follow_us: "Ikuti Kami", + + // --- Navbar Top --- + nav_about: "Tentang Kami", + nav_program: "Program", + nav_sdm: "SDM", + nav_facilities: "Fasilitas", + nav_works: "Karya & Agenda", + nav_contact: "Kontak", + + // --- Mega Menu: Tentang --- + mega_about_title: "Mengenal Informatika UNTAN", + mega_about_desc: "Terakreditasi Unggul, mencetak lulusan kompeten di bidang teknologi informasi sejak 1993.", + link_history: "Sejarah & Tonggak", + link_history_desc: "Perjalanan panjang membangun generasi digital", + link_org: "Struktur Organisasi", + link_org_desc: "Pimpinan dan jajaran pengelola", + link_vision: "Visi & Misi", + link_vision_desc: "Arah dan tujuan pengembangan prodi", + link_partnership: "Kerjasama & MoU", + link_partnership_desc: "Mitra industri dan akademik", + + // --- Mega Menu: Program --- + mega_program_obe: "Kurikulum Berbasis OBE", + mega_program_obe_desc: "Outcome-Based Education dengan 4 jalur konsentrasi: AI, Software Engineering, Network, dan Information Systems.", + btn_krs_sim: "Simulasi KRS", + link_academic: "Akademik", + link_academic_desc: "Jadwal, KRS, dan kalender", + link_accreditation: "Akreditasi", + link_accred_desc: "Status Unggul BAN-PT", + link_graduate: "Profil Lulusan", + link_graduate_desc: "Kompetensi & karir", + link_courses: "Mata Kuliah", + link_guideline: "Panduan", + link_guideline_desc: "Buku panduan akademik", + link_statistics: "Informatika Angka", + link_statistics_desc: "Statistik & data", + + // --- Mega Menu: SDM --- + mega_sdm_title: "Tim Pengajar Profesional", + mega_sdm_desc: "30+ dosen berkualifikasi S2/S3 dari universitas terkemuka dalam dan luar negeri.", + btn_all_lecturers: "Lihat Semua Dosen", + label_expertise: "Kelompok Keahlian", + + // --- SDM: Kelompok Keahlian --- + kk_ai: "Kecerdasan Buatan", + kk_se: "Rekayasa Perangkat Lunak", + kk_network: "Jaringan & Keamanan", + kk_is: "Sistem Informasi", + + // --- Navigation --- + nav_home: "Beranda", + + // --- Mega Menu: Fasilitas --- + mega_lab: "Laboratorium", + mega_lab_desc: "8 lab modern dengan peralatan terkini", + mega_dc: "Data Center", + mega_dc_desc: "Server & infrastruktur cloud lokal", + mega_eresources: "E-Resources", + mega_eresources_desc: "Akses jurnal & database ilmiah", + mega_hub_desc: "Platform PaaS untuk mahasiswa", + + // --- Mega Menu: Karya & Agenda --- + mega_research_title: "Riset Unggulan", + mega_sinta_title: "Indeks SINTA Terbaik", + mega_sinta_desc: "Publikasi dosen terindeks Scopus, WoS, dan jurnal nasional terakreditasi.", + btn_publications: "Lihat Publikasi", + link_info_agenda: "Info & Agenda", + link_info_agenda_desc: "Pengumuman dan jadwal kegiatan", + link_research: "Riset", + link_research_desc: "Penelitian dosen dan mahasiswa", + link_community: "Pengabdian", + link_community_desc: "Program pengabdian masyarakat", + link_seminar: "Seminar & Konferensi", + link_seminar_desc: "Event akademik & ilmiah", + link_achievements: "Prestasi", + link_achievements_desc: "Pencapaian dosen & mahasiswa", + + // --- Mega Menu: Kontak --- + mega_contact_title: "Hubungi Kami", + link_official_contact: "Kontak Resmi", + link_contact_desc: "Direktori kontak staf", + link_feedback: "Saran & Masukan", + link_feedback_desc: "Kirim feedback Anda", + link_social_media: "Media Sosial", + + // --- Hero --- + hero_badge: "Unggul & Inovatif", + hero_title: "Membentuk Arsitek Masa Depan Digital", + hero_desc: "Program Studi Informatika Universitas Tanjungpura mencetak talenta digital yang siap bersaing di era revolusi industri 4.0 dengan kurikulum berbasis kompetensi.", + hero_cta_primary: "Jelajahi Program", + hero_cta_secondary: "Profil Lengkap", + + // --- Marquee --- + marquee_connecting: "Menghubungkan ke server...", + + // --- Badges/Tags --- + badge_latest_info: "INFO TERBARU", + badge_achievement: "PRESTASI & REKOGNISI", + badge_works_ideas: "KARYA & GAGASAN", + badge_lecturer: "DOSEN & PENELITI", + badge_people_stories: "INSPIRASI DARI PENGALAMAN NYATA", + badge_discover_more: "DISCOVER MORE", + badge_about_us: "TENTANG KAMI", + badge_eresources: "e-Resources Informatika", + badge_penelitian: "PENELITIAN DOSEN", + badge_pkm: "PENGABDIAN KEPADA MASYARAKAT", + + // --- Section Headers --- + section_rankings: "Rankings", + section_academic_services: "Layanan Akademik", + section_news: "Kabar Informatika", + section_news_more: "Lihat Kabar Lainnya", + kabar_page_title: "Kabar Informatika", + kabar_page_subtitle: "Semua kabar terbaru dari Program Studi Informatika UNTAN", + kabar_search_placeholder: "Cari judul atau penulis kabar...", + kabar_empty: "Belum ada kabar yang cocok dengan pencarian.", + kabar_load_more: "Muat Lebih Banyak", + section_news_tag: "Update Terbaru", + section_agenda: "Agenda Mendatang", + section_social: "Pengumuman & Media Sosial", + section_innovation: "Inovasi & Aplikasi Digital", + section_impact: "Informatika Berdampak", + section_impact_desc: "Karya tulis dan pengabdian dosen serta mahasiswa bagi masyarakat.", + section_lecturers: "SDM Akademik", + section_lecturer_desc: "Pengajar berkualitas dengan kepakaran di bidangnya.", + section_stories: "Informatics People Stories", + section_stories_badge: "INSPIRASI DARI PENGALAMAN NYATA DOSEN, MAHASISWA, DAN ALUMNI IF.", + section_explore: "Jelajahi Lebih Lanjut", + section_about_heading: "Membangun Masa Depan Digital", + section_penelitian: "Penelitian Dosen", + section_penelitian_desc: "Riset dan publikasi ilmiah dari dosen Informatika UNTAN.", + section_pkm: "Pengabdian Kepada Masyarakat", + section_pkm_desc: "Program pengabdian untuk membantu masyarakat melalui teknologi informasi.", + + // --- CTA Links --- + cta_all_rubrics: "Semua Rubrik", + cta_all_stories: "Semua Cerita", + cta_visit_instagram: "Kunjungi Instagram", + cta_follow_ig: "IKUTI KESEHARIAN KAMI DI @INFORMATIKA.UNTAN", + kegiatan_tagline: "KEGIATAN & INFORMASI TERKINI", + cta_full_profile: "Profil Lengkap", + cta_download_brochure: "Unduh Brosur", + cta_brief: "Sekilas Informatika Untan", + cta_pmb: "Informasi Penerimaan Mahasiswa Baru", + cta_student_works: "Sorotan Prestasi & Karya Mahasiswa", + cta_research_kbk: "Riset & Kelompok Bidang Keahlian", + cta_student_life: "Kehidupan Mahasiswa & Himpunan (HMIF)", + cta_virtual_tour: "Tur Virtual Informatika Untan / Our Official Video Profile", + cta_all_karya: "Lihat Semua Karya", + btn_profile_prodi: "Profil Prodi", + btn_research_innovation: "Inovasi Riset", + + // --- Karya & Gagasan --- + link_all_karya: "Semua Karya", + link_all_karya_desc: "Lihat seluruh karya dalam satu halaman", + breadcrumb_karya: "Karya & Gagasan", + karya_badge: "KARYA & GAGASAN", + karya_page_title: "Karya & Gagasan Informatika UNTAN", + karya_page_desc: "Jelajahi rubrik, penelitian dosen, PKM, dan people stories dalam satu halaman terpadu.", + karya_search_label: "Cari karya", + karya_search_placeholder: "Cari judul karya...", + karya_empty: "Belum ada konten karya yang sesuai filter.", + btn_load_more: "Muat Lebih Banyak", + + // --- Layanan Akademik Links --- + link_calendar: "Kalender Akademik", + link_support_staff: "Staf Pendukung", + link_scholarship: "Info Beasiswa", + link_hmif: "Himpunan Mahasiswa (HMIF)", + link_student_achievement: "Prestasi Mahasiswa", + link_alumni: "Alumni & Testimoni", + link_kontributor: "Jadi Kontributor", + + // --- Filters --- + filter_artikel: "Artikel", + filter_pengabdian: "Pengabdian", + filter_mahasiswa: "Mahasiswa", + filter_penelitian: "Penelitian", + filter_all: "Semua", + filter_rubrik: "Rubrik", + filter_pkm: "PKM", + filter_people_stories: "People Stories", + hero_prev_aria: "Slide sebelumnya", + hero_next_aria: "Slide berikutnya", + filter_all_kbk: "Semua KBK", + filter_all_position: "Semua Jabatan", + loading_lecturer: "Memuat Data Dosen...", + + // --- App Showcase --- + app_coming_soon: "Aplikasi Lainnya", + app_coming_soon_sub: "Akan Menyusul", + + // --- Footer --- + footer_follow_us: "Ikuti Kami", + footer_copyright: "Program Studi Informatika — Universitas Tanjungpura", + + // --- content.html --- + breadcrumb_home: "Beranda", + breadcrumb_news: "Kabar Informatika", + breadcrumb_penelitian: "Penelitian", + breadcrumb_pkm: "Pengabdian Masyarakat", + loading_content: "Memuat konten...", + error_content: "Gagal memuat konten dari server. Menampilkan data cadangan jika tersedia.", + empty_content: "Konten belum tersedia untuk kategori ini.", + sidebar_related: "Konten terkait", + content_type_berita: "Kabar Informatika", + content_type_rubrik: "Informatika Berdampak", + content_type_people_stories: "Informatics People Stories", + content_type_penelitian: "Penelitian Dosen", + content_type_pkm: "Pengabdian Kepada Masyarakat", + label_peneliti: "Peneliti", + label_pelaksana: "Pelaksana", + label_tahun: "Tahun", + label_lokasi: "Lokasi", + + // --- kurikulum.html --- + kur_page_title: "Simulasi Studi Berbasis IPS", + kur_page_desc1: "Simulasi nyata: IPS Semester lalu menentukan jatah SKS semester depan.", + kur_page_desc2: "Jika nilai E, gunakan opsi \"Ulang di Tahun Depan\" (Klik Kanan) untuk memperbaiki.", + kur_catalog: "Katalog", + kur_catalog_title: "Katalog Mata Kuliah", + kur_catalog_drag: "Tarik ke semester untuk mengambil.", + kur_search: "Cari mata kuliah...", + kur_academic_options: "OPSI AKADEMIK", + kur_retake: "Ulang di Tahun Depan", + kur_set_grade: "SET NILAI (SIMULASI)", + kur_grade_a: "Sangat Baik", + kur_grade_b: "Baik", + kur_grade_c: "Cukup", + kur_grade_d: "Kurang", + kur_grade_e: "Gagal/Ulang", + kur_remove: "Hapus dari KRS", + kur_legend: "Legenda kategori mata kuliah", + kur_stat_sks: "Total SKS Lulus", + kur_stat_gpa: "IPK Kumulatif", + kur_stat_predicate: "Predikat", + kur_stat_failed: "SKS Gagal (E)", + kur_tab_general: "Umum", + kur_tab_network: "Jaringan", + kur_label_semester: "Semester", + kur_label_sks: "SKS", + kur_label_prev_gpa: "IPS Lalu", + kur_label_quota: "Jatah", + kur_new_student: "Mahasiswa Baru", + kur_initial_package: "Paket Awal", + kur_overload: "OVERLOAD! Kurangi mata kuliah.", + kur_chart_gpa: "Tren IPS (Indeks Prestasi Semester)", + kur_chart_domain: "Komposisi Bidang Ilmu", + kur_label_ips_short: "IPS", + kur_predicate_cum_laude: "Cum Laude", + kur_predicate_very_satisfactory: "Sangat Memuaskan", + kur_predicate_satisfactory: "Memuaskan", + kur_predicate_probation: "Nasakom", + kur_retake_title: "Mengulang", + kur_toast_failed: "Mata kuliah Gagal (E). Klik kanan > 'Ulang di Tahun Depan' untuk memperbaiki.", + kur_toast_target_oob: "Maaf, semester tujuan ({semester}) di luar jangkauan simulasi (Maks. Semester 8).", + kur_toast_exists: "Mata kuliah ini sudah ada di Semester {semester}.", + kur_toast_added: "Mata kuliah ditambahkan ke Semester {semester}.", + + // --- academic-guidelines.html --- + ag_badge: "PANDUAN AKADEMIK", + ag_desc: "Halaman ini merangkum dokumen pedoman akademik, rencana pembelajaran, SOP, format administrasi, dan referensi jurnal untuk kebutuhan pembelajaran di Informatika UNTAN.", + ag_general: "General Academic Guidelines", + ag_undergrad: "Buku Pedoman Akademik Sarjana.", + ag_rps: "Learning Plan (RPS)", + ag_sop: "Standard Operating Procedures (SOP)", + ag_templates: "Terms of Reference / Templates", + ag_module: "Modul", + ag_final_project: "Final Project Guidelines", + ag_forms: "Forms / Registration / Administration", + ag_journal: "Journal Reference", + + // --- graduate-profile.html --- + gp_badge: "PROFIL LULUSAN 2026", + gp_desc: "Ringkasan profil lulusan dan Capaian Pembelajaran Lulusan (CPL) untuk kurikulum Informatika UNTAN 2026.", + gp_heading: "Profil Lulusan", + gp_table_code: "Kode", + gp_table_outcome: "Ringkasan Capaian", + + // --- people-based-on-kk.html --- + pkk_badge: "DOSEN BERDASARKAN KELOMPOK KEAHLIAN", + pkk_kk_ai: "KK Kecerdasan Buatan", + pkk_kk_rpl: "KK Rekayasa Perangkat Lunak", + pkk_kk_net: "KK Jaringan & Keamanan", + pkk_kk_si: "KK Sistem Informasi", + + // --- subject-and-courses.html --- + sc_badge: "KURIKULUM & MATA KULIAH", + sc_desc: "Ringkasan struktur mata kuliah dan pemetaan CPL pada Kurikulum Informatika UNTAN.", + sc_table_cpl: "CPL", + sc_table_focus: "Fokus", + sc_table_courses: "Contoh Mata Kuliah Terkait", + sc_semester_dist: "Distribusi Semester", + sc_table_stage: "Tahap", + sc_table_character: "Karakter Umum", + sc_stage_foundation: "Fondasi", + sc_stage_core: "Penguatan Inti", + sc_stage_specialization: "Peminatan & Integrasi", + sc_stage_professional: "Profesional", + sc_electives: "Elective Courses", + + // --- ifuntanhub.html --- + hub_nav_aria: "Navigasi utama", + hub_login_aria: "Login ke dashboard", + hub_docs_aria: "Lihat dokumentasi", + hub_nav_init: "Init", + hub_nav_features: "Fitur", + hub_nav_protocols: "Protokol", + hub_nav_support: "Dukungan", + hub_auth_login: "AUTH_LOGIN", + hub_status_operational: "System Status: Operational", + hub_hero: "Deploy Riset Anda Secara Instan.", + hub_desc: "Platform PaaS eksklusif Informatika UNTAN. Permudah pengerjaan Tugas Akhir dengan server modern berbasis kontainer yang siap pakai.", + hub_start: "MULAI DEPLOYMENT", + hub_docs: "LIHAT DOKUMENTASI", + hub_core_capabilities: "// KAPABILITAS_INTI", + hub_feature_title_autodeploy: "Auto Deployment", + hub_feature_title_db: "Database Sekali Klik", + hub_feature_title_ssl: "HTTPS/SSL", + hub_feature_title_monitoring: "Monitoring", + hub_feature_title_dockerized: "Terdockerisasi", + hub_feature_title_latency: "Latensi Rendah", + hub_feature_cicd: "Pipeline CI/CD instan untuk repositori Git mahasiswa.", + hub_feature_db: "Instalasi PostgreSQL, MySQL, & Redis tanpa konfigurasi manual.", + hub_feature_ssl: "Sertifikat keamanan SSL otomatis untuk seluruh subdomain.", + hub_feature_monitor: "Dashboard statistik penggunaan CPU dan Memory secara real-time.", + hub_feature_docker: "Isolasi penuh antar proyek mahasiswa menggunakan Docker.", + hub_feature_latency: "Akses super cepat melalui infrastruktur server lokal UNTAN.", + hub_workflow: "Workflow Terintegrasi.", + hub_step_git: "Koneksi Git", + hub_step_git_desc: "Hubungkan repositori Anda. Server akan mendeteksi framework secara otomatis.", + hub_step_build: "Build Kontainer", + hub_step_build_desc: "Aplikasi dibungkus menjadi Docker image yang efisien dan aman.", + hub_step_publish: "Publikasi Otomatis", + hub_step_publish_desc: "Setiap perubahan kode akan di-deploy ulang tanpa downtime.", + hub_console_label: "Console: Deployment", + hub_build_info: "[INFO_BUILD]", + hub_console_detecting: "Mendeteksi bahasa: Next.js v14.0", + hub_console_building: "Membangun aset statis...", + hub_console_ready: "✓ Kontainer siap (sha256:7f28a...)", + hub_console_live: "➜ Aktif di: ta-web.ifuntanhub.dev", + hub_console_listening: "_ (menunggu git push...)", + hub_protocols_title: "// PROTOKOL", + hub_step1_label: "LANGKAH_01", + hub_step2_label: "LANGKAH_02", + hub_step3_label: "LANGKAH_03", + hub_step4_label: "LANGKAH_04", + hub_tab_preparation: "Persiapan", + hub_tab_documentation: "Dokumentasi", + hub_tab_verification: "Verifikasi", + hub_tab_deployment: "Deployment", + hub_sop1: "Siapkan KTM dan Bukti Pendaftaran KP/TA dalam format PDF standar.", + hub_sop2: "Lengkapi Surat Permohonan. Definisikan kebutuhan Stack (Node, Python, Docker) Anda.", + hub_sop3: "Validasi oleh Dosen Pembimbing melalui tanda tangan resmi pada dokumen terkait.", + hub_sop4: "Kirim berkas ke admin. Akses dashboard akan diaktivasi setelah verifikasi selesai.", + hub_download_sop: "UNDUH_FORM_SOP.PDF", + hub_supervisor_note: "Wajib disetujui Dosen Pembimbing", + hub_resource_policy: "Kebijakan Resource.", + hub_default_quota: "Kuota Default Mahasiswa", + hub_policy_memory: "// Batas Memori", + hub_policy_storage: "// Penyimpanan", + hub_policy_ssl: "// Status SSL", + hub_policy_autostop: "// Henti Otomatis", + hub_footer_desc: "Infrastruktur Deployment resmi untuk mahasiswa Informatika Universitas Tanjungpura. Dikelola secara mandiri oleh Lab Informatika.", + hub_footer_nav: "Navigasi", + hub_footer_doc: "Dokumentasi", + hub_footer_status: "Status Server", + hub_footer_security: "Audit Keamanan", + hub_footer_lab: "Lokasi Lab", + hub_lab_address: "Lab Komputer Lt. 2,
Gedung Teknik Informatika UNTAN,
Pontianak, Kalimantan Barat.", + hub_footer_copyright: "© 2026 JURUSAN INFORMATIKA UNTAN. SEMUA SISTEM SIAP.", + hub_footer_tagline: "DIRANCANG UNTUK SARJANA & PEMBANGUN.", + + // --- Luco Chatbot --- + luco_greeting: "Hai! Ada yang bisa Luco bantu? 💬", + luco_name: "Luco", + luco_role: "Asisten Informatika", + luco_placeholder: "Ketik pesan...", + luco_welcome: "Halo! 👋 Kenalkan, aku Luco, burung asisten dari Prodi Informatika UNTAN! Aku siap bantu kamu dengan info seputar prodi, menerima saran/kritik, atau peluang kerjasama. Ada yang bisa Luco bantu hari ini? 🐦", + luco_thinking: "Luco sedang berpikir...", + luco_error: "Aduh! 😅 Luco lagi ada gangguan teknis nih. Coba lagi sebentar lagi ya!", + luco_fallback: "Waduh! 🐣 Luco masih belajar nih, baru lahir jadi belum tahu semua hal. Coba tanyakan hal lain ya, atau langsung hubungi admin prodi saja!", + luco_ask_contact: "Untuk kerjasama, boleh Luco minta nama dan email/nomor telepon kamu?", + luco_thanks_feedback: "Terima kasih banyak atas masukannya! 🙏 Saran/kritik kamu sangat berharga bagi kami.", + luco_thanks_kerjasama: "Terima kasih! 🤝 Tim kami akan segera menghubungi kamu.", + luco_aria_open: "Buka chat dengan Luco", + luco_aria_close: "Tutup chat", + luco_aria_send: "Kirim pesan", + + // --- profil.html --- + profile_badge: "PROFIL PRODI", + profile_title: "Profil Program Studi Informatika", + profile_subtitle: "Mengenal lebih dekat visi, misi, tujuan, dan struktur organisasi Program Studi Informatika Universitas Tanjungpura.", + section_vision_mission: "Visi & Misi", + vision_title: "Visi", + vision_text: "Menjadi program studi unggul, inovatif, dan berdaya saing global, dengan fokus pada informatika cerdas untuk mendukung keberlanjutan dan pemberdayaan masyarakat melalui solusi teknologi berbasis kearifan lokal.", + mission_title: "Misi", + mission_1_title: "Pendidikan OBE Unggul", + mission_1_desc: "Menyelenggarakan pendidikan berbasis informatika cerdas yang unggul dan inovatif melalui pendekatan OBE untuk menghasilkan lulusan yang kompeten, adaptif, beretika, dan berdaya saing global.", + mission_2_title: "Penelitian untuk SDGs", + mission_2_desc: "Mengembangkan penelitian unggul di bidang informatika cerdas yang mendukung pencapaian Tujuan Pembangunan Berkelanjutan (SDGs) dan relevan dengan tantangan lokal maupun global.", + mission_3_title: "Pengabdian Berbasis Kearifan Lokal", + mission_3_desc: "Menerapkan dan mengembangkan solusi teknologi berbasis kearifan lokal dalam kegiatan pengabdian kepada masyarakat untuk memberdayakan komunitas secara inklusif dan berkelanjutan.", + mission_4_title: "Kemitraan Strategis", + mission_4_desc: "Membangun kemitraan strategis dengan industri, pemerintah, dan institusi akademik untuk memperkuat ekosistem riset, inovasi, dan penerapan informatika cerdas yang memberikan dampak nyata bagi masyarakat.", + mission_5_title: "Budaya Akademik Beretika", + mission_5_desc: "Menumbuhkan budaya akademik yang beretika, kolaboratif, kreatif, dan berorientasi pada pembelajaran sepanjang hayat untuk mempersiapkan sumber daya manusia unggul menghadapi disrupsi teknologi.", + section_goals: "Tujuan", + goals_title: "Tujuan", + goals_intro: "Tujuan Program Studi Informatika UNTAN diturunkan dari visi dan misi untuk memastikan setiap aktivitas akademik memberikan dampak nyata bagi lulusan, ilmu pengetahuan, dan masyarakat.", + goals_1_title: "Lulusan Unggul & Beretika", + goals_1_desc: "Menghasilkan lulusan yang unggul, inovatif, berdaya saing global, dan memiliki kompetensi dalam bidang informatika cerdas, serta menjunjung tinggi etika, tanggung jawab sosial, dan semangat pembelajaran sepanjang hayat.", + goals_2_title: "Kurikulum OBE Adaptif", + goals_2_desc: "Mengembangkan kurikulum berbasis OBE yang adaptif terhadap perkembangan teknologi dan kebutuhan industri, dengan integrasi nilai-nilai kearifan lokal dan keberlanjutan.", + goals_3_title: "Penelitian Selaras SDGs", + goals_3_desc: "Mendorong penelitian berkualitas di bidang informatika cerdas yang berkontribusi pada pengembangan ilmu pengetahuan, teknologi tepat guna, dan solusi terhadap permasalahan global maupun lokal sesuai kerangka SDGs.", + goals_4_title: "Pemberdayaan Berkelanjutan", + goals_4_desc: "Menyelenggarakan pengabdian kepada masyarakat berbasis teknologi informatika untuk mendukung pemberdayaan masyarakat secara inklusif dan berkelanjutan.", + goals_5_title: "Kolaborasi Multilevel", + goals_5_desc: "Menjalin kolaborasi strategis dengan pemangku kepentingan di tingkat lokal, nasional, dan internasional guna memperkuat kapasitas institusi dan memperluas dampak program studi.", + section_history: "Sejarah", + section_organization: "Struktur Organisasi", + org_intro: "Struktur organisasi Jurusan Informatika UNTAN terdiri dari pimpinan jurusan, koordinator program studi, koordinator laboratorium, ketua kelompok keahlian, serta staf pendukung yang bekerja sama untuk mencapai visi dan misi jurusan.", + org_leadership: "Pimpinan Jurusan", + org_lab_heads: "Koordinator Laboratorium", + org_kk: "Kelompok Keahlian (KK)", + org_support_staff: "Staf Pendukung", + see_also: "Lihat juga", + + // --- struktur-org.html --- + breadcrumb_struktur: "Struktur Organisasi", + struktur_badge: "STRUKTUR ORGANISASI", + struktur_page_title: "Struktur Organisasi Jurusan", + struktur_page_subtitle: "Pimpinan jurusan, koordinator program studi, koordinator laboratorium, kelompok keahlian, dan staf pendukung yang membangun Jurusan Informatika UNTAN.", + profil_page_title: "Profil Program Studi", + profil_vision_title: "Visi", + profil_vision_text: "Menjadi program studi unggul, inovatif, dan berdaya saing global, dengan fokus pada informatika cerdas untuk mendukung keberlanjutan dan pemberdayaan masyarakat melalui solusi teknologi berbasis kearifan lokal.", + profil_mission_title: "Misi", + profil_mission_1: "Menyelenggarakan pendidikan berbasis informatika cerdas yang unggul dan inovatif melalui pendekatan OBE untuk menghasilkan lulusan yang kompeten, adaptif, beretika, dan berdaya saing global.", + profil_mission_2: "Mengembangkan penelitian unggul di bidang informatika cerdas yang mendukung pencapaian Tujuan Pembangunan Berkelanjutan (SDGs) dan relevan dengan tantangan lokal maupun global.", + profil_mission_3: "Menerapkan dan mengembangkan solusi teknologi berbasis kearifan lokal dalam kegiatan pengabdian kepada masyarakat untuk memberdayakan komunitas secara inklusif dan berkelanjutan.", + profil_mission_4: "Membangun kemitraan strategis dengan industri, pemerintah, dan institusi akademik untuk memperkuat ekosistem riset, inovasi, dan penerapan informatika cerdas yang memberikan dampak nyata bagi masyarakat.", + profil_mission_5: "Menumbuhkan budaya akademik yang beretika, kolaboratif, kreatif, dan berorientasi pada pembelajaran sepanjang hayat untuk mempersiapkan sumber daya manusia unggul menghadapi disrupsi teknologi.", + profil_history_title: "Sejarah", + profil_history_est: "Didirikan Tahun 1993", + profil_history_desc: "Program Studi Informatika Universitas Tanjungpura didirikan pada tahun 1993 sebagai bagian dari Fakultas Teknik. Sejak saat itu, prodi terus berkembang dan menghasilkan ribuan lulusan yang berkontribusi di berbagai sektor.", + profil_milestone_1: "1993 - Pendirian Program Studi", + profil_milestone_2: "2010 - Akreditasi B dari BAN-PT", + profil_milestone_3: "2020 - Akreditasi Unggul dari BAN-PT", + profil_milestone_4: "2024 - Kurikulum OBE dengan 4 Konsentrasi", + profil_org_title: "Struktur Organisasi", + profil_kaprodi: "Ketua Program Studi", + profil_sekprodi: "Sekretaris Program Studi", + profil_kepala_lab: "Kepala Laboratorium", + profil_koordinator: "Koordinator Akademik", + + // --- fasilitas.html --- + fasilitas_page_title: "Fasilitas & Laboratorium", + fasilitas_intro: "Program Studi Informatika UNTAN dilengkapi dengan fasilitas laboratorium modern untuk mendukung kegiatan pembelajaran dan penelitian.", + lab_network_title: "Laboratorium Jaringan Komputer", + lab_network_desc: "Laboratorium untuk praktikum dan penelitian di bidang jaringan komputer, keamanan siber, dan administrasi sistem.", + lab_se_title: "Laboratorium Rekayasa Perangkat Lunak", + lab_se_desc: "Fasilitas pengembangan perangkat lunak dengan berbagai platform dan framework modern.", + lab_is_title: "Laboratorium Sistem Informasi", + lab_is_desc: "Laboratorium untuk pengembangan sistem informasi, basis data, dan analisis bisnis.", + lab_ai_title: "Laboratorium Kecerdasan Buatan", + lab_ai_desc: "Fasilitas komputasi untuk penelitian machine learning, computer vision, dan natural language processing.", + lab_multimedia_title: "Laboratorium Multimedia", + lab_multimedia_desc: "Laboratorium untuk pengembangan konten multimedia, game, dan realitas virtual.", + lab_head: "Kepala Lab", + lab_equipment: "Peralatan Utama", + + // --- riset.html --- + nav_research: "Riset", + riset_title: "Riset & Pengabdian", + riset_subtitle: "Daftar penelitian dan kegiatan pengabdian kepada masyarakat dosen Informatika UNTAN", + riset_filter_all: "Semua", + riset_filter_penelitian: "Penelitian", + riset_filter_pkm: "Pengabdian (PKM)", + riset_search_placeholder: "Cari judul penelitian atau nama peneliti...", + riset_stat_total: "Total Kegiatan", + riset_stat_penelitian: "Penelitian", + riset_stat_pkm: "Pengabdian", + riset_stat_shown: "Ditampilkan", + riset_load_more: "Muat Lebih Banyak", + riset_empty: "Tidak ada data yang cocok dengan pencarian.", + + // --- kontributor.html --- + kontrib_page_title: "Kirim Karya - Informatika UNTAN", + kontrib_hero_badge: "PROGRAM KONTRIBUTOR", + kontrib_hero_title: "Bagikan Karya Tulis Anda", + kontrib_hero_desc: "Tulis dan kirimkan artikel Anda untuk ditampilkan di kanal resmi Informatika UNTAN. Tim redaksi akan mereview dan menghubungi Anda.", + kontrib_step1: "Tulis Karya", + kontrib_step1_desc: "Buat artikel sesuai kategori yang dipilih", + kontrib_step2: "Kirim", + kontrib_step2_desc: "Submit formulir dan dapatkan kode lacak", + kontrib_step3: "Pantau Status", + kontrib_step3_desc: "Cek perkembangan karya Anda kapan saja", + kontrib_form_title: "Formulir Pengiriman Karya", + kontrib_form_subtitle: "Isi semua kolom dengan lengkap. Karya yang masuk akan direviw dalam 3-7 hari kerja.", + kontrib_nama: "Nama Penulis", + kontrib_nama_placeholder: "Nama lengkap Anda", + kontrib_email: "Alamat Email", + kontrib_email_placeholder: "email@contoh.com", + kontrib_judul: "Judul Artikel", + kontrib_judul_placeholder: "Judul yang menarik dan deskriptif", + kontrib_kategori: "Kategori", + kontrib_kat_pilih: "Pilih kategori...", + kontrib_kat_berita: "Kabar Informatika", + kontrib_kat_rubrik: "Informatika Berdampak", + kontrib_kat_people: "People Stories", + kontrib_body: "Isi Artikel", + kontrib_body_hint: "Minimal 200 karakter. Gunakan toolbar untuk memformat teks.", + kontrib_submit: "Kirim Karya", + kontrib_submitting: "Mengirim...", + kontrib_success_title: "Karya Berhasil Dikirim!", + kontrib_success_desc: "Simpan kode lacak berikut untuk memantau status karya Anda.", + kontrib_success_kode_label: "Kode Lacak Anda", + kontrib_success_email_info: "Status juga bisa dipantau lewat email:", + kontrib_submit_another: "Kirim Karya Lain", + kontrib_monitor_title: "Pantau Status Karya", + kontrib_monitor_desc: "Masukkan email atau kode tracking untuk memantau status karya Anda.", + kontrib_monitor_email_placeholder: "Email atau kode tracking (contoh: KTR-20260407-AB12)", + kontrib_monitor_btn: "Cek Status", + kontrib_monitor_checking: "Memeriksa...", + kontrib_status_draft: "Menunggu Review", + kontrib_status_review: "Sedang Direview", + kontrib_status_revisi: "Perlu Revisi", + kontrib_status_publish: "Diterbitkan", + kontrib_status_ditolak: "Ditolak", + kontrib_catatan_admin: "Catatan Redaksi", + kontrib_no_result: "Tidak ada karya ditemukan untuk email ini.", + kontrib_error_submit: "Gagal mengirim karya. Periksa koneksi dan coba lagi.", + kontrib_error_fetch: "Gagal memuat status. Periksa koneksi dan coba lagi.", + kontrib_tanggal: "Dikirim pada", + kontrib_copy_kode: "Salin Kode", + kontrib_copied: "Tersalin!", + kontrib_gambar: "Gambar Thumbnail", + kontrib_gambar_hint: "JPG/PNG/WebP, maks. 5 MB. Opsional, tapi sangat dianjurkan.", + kontrib_gambar_choose: "Pilih Gambar", + kontrib_gambar_change: "Ganti Gambar", + kontrib_gambar_remove: "Hapus", + kontrib_gambar_uploading: "Mengunggah gambar...", + kontrib_gambar_error: "Gagal mengunggah gambar. Coba lagi.", + kontrib_gambar_size_error: "Ukuran file melebihi 5 MB.", + kontrib_gambar_type_error: "Format tidak didukung. Gunakan JPG, PNG, atau WebP.", + kontrib_guidelines_title: "Panduan Penulisan", + kontrib_guideline_1: "Gunakan bahasa Indonesia yang baik dan benar.", + kontrib_guideline_2: "Panjang artikel minimal 500 kata.", + kontrib_guideline_3: "Sertakan fakta dan data yang akurat dan dapat diverifikasi.", + kontrib_guideline_4: "Hindari plagiarisme. Karya harus orisinal.", + kontrib_guideline_5: "Tim redaksi berhak menyunting konten untuk keperluan editorial.", + }, + + en: { + // --- Common / Shared --- + skip_to_content: "Skip to Main Content", + btn_more: "Read More", + btn_view_all: "View All", + btn_read_more: "Read More", + btn_explore: "Explore", + btn_reset_filter: "Reset Filter", + loading: "Loading...", + no_data: "No data found.", + coming_soon: "Coming Soon", + follow_us: "Follow Us", + + // --- Navbar Top --- + nav_about: "About Us", + nav_program: "Programs", + nav_sdm: "Human Resources", + nav_facilities: "Facilities", + nav_works: "Works & Events", + nav_contact: "Contact", + + // --- Mega Menu: Tentang --- + mega_about_title: "About Informatics UNTAN", + mega_about_desc: "Excellently Accredited, producing competent graduates in information technology since 1993.", + link_history: "History & Milestones", + link_history_desc: "Long journey of building digital generations", + link_org: "Organizational Structure", + link_org_desc: "Leadership and management team", + link_vision: "Vision & Mission", + link_vision_desc: "Direction and goals of program development", + link_partnership: "Partnerships & MoU", + link_partnership_desc: "Industry and academic partners", + + // --- Mega Menu: Program --- + mega_program_obe: "OBE-Based Curriculum", + mega_program_obe_desc: "Outcome-Based Education with 4 concentration tracks: AI, Software Engineering, Network, and Information Systems.", + btn_krs_sim: "Course Enrollment Simulation", + link_academic: "Academics", + link_academic_desc: "Schedule, enrollment, and calendar", + link_accreditation: "Accreditation", + link_accred_desc: "Excellent Status by BAN-PT", + link_graduate: "Graduate Profile", + link_graduate_desc: "Competencies & career", + link_courses: "Courses", + link_guideline: "Guidelines", + link_guideline_desc: "Academic guidebook", + link_statistics: "Informatics in Numbers", + link_statistics_desc: "Statistics & data", + + // --- Mega Menu: SDM --- + mega_sdm_title: "Professional Teaching Team", + mega_sdm_desc: "30+ lecturers with Master/Doctoral qualifications from leading domestic and international universities.", + btn_all_lecturers: "View All Lecturers", + label_expertise: "Expertise Groups", + + // --- SDM: Kelompok Keahlian --- + kk_ai: "Artificial Intelligence", + kk_se: "Software Engineering", + kk_network: "Network & Security", + kk_is: "Information Systems", + + // --- Navigation --- + nav_home: "Home", + + // --- Mega Menu: Fasilitas --- + mega_lab: "Laboratories", + mega_lab_desc: "8 modern labs with the latest equipment", + mega_dc: "Data Center", + mega_dc_desc: "Server & local cloud infrastructure", + mega_eresources: "E-Resources", + mega_eresources_desc: "Access to journals & scientific databases", + mega_hub_desc: "PaaS Platform for students", + + // --- Mega Menu: Karya & Agenda --- + mega_research_title: "Featured Research", + mega_sinta_title: "Best SINTA Index", + mega_sinta_desc: "Lecturer publications indexed in Scopus, WoS, and accredited national journals.", + btn_publications: "View Publications", + link_info_agenda: "Info & Events", + link_info_agenda_desc: "Announcements and event schedules", + link_research: "Research", + link_research_desc: "Lecturer and student research", + link_community: "Community Service", + link_community_desc: "Community service programs", + link_seminar: "Seminars & Conferences", + link_seminar_desc: "Academic & scientific events", + link_achievements: "Achievements", + link_achievements_desc: "Lecturer & student achievements", + + // --- Mega Menu: Kontak --- + mega_contact_title: "Contact Us", + link_official_contact: "Official Contact", + link_contact_desc: "Staff contact directory", + link_feedback: "Feedback & Suggestions", + link_feedback_desc: "Send your feedback", + link_social_media: "Social Media", + + // --- Hero --- + hero_badge: "Excellence & Innovation", + hero_title: "Shaping the Architects of Digital Future", + hero_desc: "Informatics Study Program at Tanjungpura University produces digital talents ready to compete in the era of Industry 4.0 with a competency-based curriculum.", + hero_cta_primary: "Explore Programs", + hero_cta_secondary: "Full Profile", + + // --- Marquee --- + marquee_connecting: "Connecting to server...", + + // --- Badges/Tags --- + badge_latest_info: "LATEST NEWS", + badge_achievement: "ACHIEVEMENTS & RECOGNITION", + badge_works_ideas: "WORKS & IDEAS", + badge_lecturer: "LECTURERS & RESEARCHERS", + badge_people_stories: "INSPIRATION FROM REAL EXPERIENCES", + badge_discover_more: "DISCOVER MORE", + badge_about_us: "ABOUT US", + badge_eresources: "Informatics e-Resources", + badge_penelitian: "FACULTY RESEARCH", + badge_pkm: "COMMUNITY SERVICE", + + // --- Section Headers --- + section_rankings: "Rankings", + section_academic_services: "Academic Services", + section_news: "Informatics News", + section_news_more: "View More News", + kabar_page_title: "Informatics News", + kabar_page_subtitle: "All latest news from Informatics UNTAN", + kabar_search_placeholder: "Search news title or author...", + kabar_empty: "No news matches your search.", + kabar_load_more: "Load More", + section_news_tag: "Latest Updates", + section_agenda: "Upcoming Events", + section_social: "Announcements & Social Media", + section_innovation: "Digital Innovation & Applications", + section_impact: "Impactful Informatics", + section_impact_desc: "Publications and community service by lecturers and students.", + section_lecturers: "Academic Staff", + section_lecturer_desc: "Quality educators with expertise in their respective fields.", + section_stories: "Informatics People Stories", + section_stories_badge: "INSPIRATION FROM REAL EXPERIENCES OF LECTURERS, STUDENTS, AND ALUMNI.", + section_explore: "Explore More", + section_about_heading: "Building a Digital Future", + section_penelitian: "Faculty Research", + section_penelitian_desc: "Research and scientific publications from Informatics UNTAN faculty.", + section_pkm: "Community Service", + section_pkm_desc: "Community service programs using information technology.", + + // --- CTA Links --- + cta_all_rubrics: "All Rubrics", + cta_all_stories: "All Stories", + cta_visit_instagram: "Visit Instagram", + cta_follow_ig: "FOLLOW OUR DAILY LIFE @INFORMATIKA.UNTAN", + kegiatan_tagline: "EVENTS & LATEST INFORMATION", + cta_full_profile: "Full Profile", + cta_download_brochure: "Download Brochure", + cta_brief: "Brief About Informatics Untan", + cta_pmb: "New Student Admission Information", + cta_student_works: "Student Achievements & Works Spotlight", + cta_research_kbk: "Research & Expertise Groups", + cta_student_life: "Student Life & Association (HMIF)", + cta_virtual_tour: "Virtual Tour / Our Official Video Profile", + cta_all_karya: "See All Works", + btn_profile_prodi: "Program Profile", + btn_research_innovation: "Research Innovation", + + // --- Karya & Ideas --- + link_all_karya: "All Works", + link_all_karya_desc: "View all works in one page", + breadcrumb_karya: "Works & Ideas", + karya_badge: "WORKS & IDEAS", + karya_page_title: "Informatics UNTAN Works & Ideas", + karya_page_desc: "Explore rubrics, faculty research, community service, and people stories in one integrated page.", + karya_search_label: "Search works", + karya_search_placeholder: "Search works title...", + karya_empty: "No works match the selected filter.", + btn_load_more: "Load More", + + // --- Layanan Akademik Links --- + link_calendar: "Academic Calendar", + link_support_staff: "Support Staff", + link_scholarship: "Scholarship Info", + link_hmif: "Student Association (HMIF)", + link_student_achievement: "Student Achievements", + link_alumni: "Alumni & Testimonials", + link_kontributor: "Become a Contributor", + + // --- Filters --- + filter_artikel: "Articles", + filter_pengabdian: "Community Service", + filter_mahasiswa: "Students", + filter_penelitian: "Research", + filter_all: "All", + filter_rubrik: "Rubric", + filter_pkm: "Community Service", + filter_people_stories: "People Stories", + hero_prev_aria: "Previous slide", + hero_next_aria: "Next slide", + filter_all_kbk: "All Research Groups", + filter_all_position: "All Positions", + loading_lecturer: "Loading Lecturer Data...", + + // --- App Showcase --- + app_coming_soon: "More Apps", + app_coming_soon_sub: "Coming Soon", + + // --- Footer --- + footer_follow_us: "Follow Us", + footer_copyright: "Informatics Study Program — Tanjungpura University", + + // --- content.html --- + breadcrumb_home: "Home", + breadcrumb_news: "Informatics News", + breadcrumb_penelitian: "Research", + breadcrumb_pkm: "Community Service", + loading_content: "Loading content...", + error_content: "Failed to load content from server. Displaying backup data if available.", + empty_content: "No content available for this category.", + sidebar_related: "Related Content", + content_type_berita: "Informatics News", + content_type_rubrik: "Impactful Informatics", + content_type_people_stories: "Informatics People Stories", + content_type_penelitian: "Faculty Research", + content_type_pkm: "Community Service", + label_peneliti: "Researcher", + label_pelaksana: "Implementer", + label_tahun: "Year", + label_lokasi: "Location", + + // --- kurikulum.html --- + kur_page_title: "IPS-Based Study Simulation", + kur_page_desc1: "Real simulation: Previous semester GPA determines the credit quota for next semester.", + kur_page_desc2: "If grade is E, use the \"Retake Next Year\" option (Right Click) to improve.", + kur_catalog: "Catalog", + kur_catalog_title: "Course Catalog", + kur_catalog_drag: "Drag to semester to enroll.", + kur_search: "Search course...", + kur_academic_options: "ACADEMIC OPTIONS", + kur_retake: "Retake Next Year", + kur_set_grade: "SET GRADE (SIMULATION)", + kur_grade_a: "Excellent", + kur_grade_b: "Good", + kur_grade_c: "Fair", + kur_grade_d: "Poor", + kur_grade_e: "Fail/Retake", + kur_remove: "Remove from Enrollment", + kur_legend: "Course category legend", + kur_stat_sks: "Total Credits Passed", + kur_stat_gpa: "Cumulative GPA", + kur_stat_predicate: "Predicate", + kur_stat_failed: "Failed Credits (E)", + kur_tab_general: "General", + kur_tab_network: "Network", + kur_label_semester: "Semester", + kur_label_sks: "Credits", + kur_label_prev_gpa: "Previous GPA", + kur_label_quota: "Quota", + kur_new_student: "New Student", + kur_initial_package: "Initial Package", + kur_overload: "OVERLOAD! Reduce courses.", + kur_chart_gpa: "GPA Trend (Semester Grade Point Average)", + kur_chart_domain: "Field of Study Composition", + kur_label_ips_short: "GPA", + kur_predicate_cum_laude: "Cum Laude", + kur_predicate_very_satisfactory: "Very Satisfactory", + kur_predicate_satisfactory: "Satisfactory", + kur_predicate_probation: "Probation", + kur_retake_title: "Retake", + kur_toast_failed: "Course marked as Failed (E). Right click > 'Retake Next Year' to improve.", + kur_toast_target_oob: "Sorry, target semester ({semester}) is outside simulation range (Max Semester 8).", + kur_toast_exists: "This course already exists in Semester {semester}.", + kur_toast_added: "Course added to Semester {semester}.", + + // --- academic-guidelines.html --- + ag_badge: "ACADEMIC GUIDELINES", + ag_desc: "This page summarizes academic guidelines, learning plans, SOPs, administrative formats, and journal references for learning needs at Informatics UNTAN.", + ag_general: "General Academic Guidelines", + ag_undergrad: "Undergraduate Academic Guidebook.", + ag_rps: "Learning Plan (RPS)", + ag_sop: "Standard Operating Procedures (SOP)", + ag_templates: "Terms of Reference / Templates", + ag_module: "Module", + ag_final_project: "Final Project Guidelines", + ag_forms: "Forms / Registration / Administration", + ag_journal: "Journal Reference", + + // --- graduate-profile.html --- + gp_badge: "GRADUATE PROFILE 2026", + gp_desc: "Summary of graduate profile and Program Learning Outcomes (PLO) for Informatics UNTAN curriculum 2026.", + gp_heading: "Graduate Profile", + gp_table_code: "Code", + gp_table_outcome: "Outcome Summary", + + // --- people-based-on-kk.html --- + pkk_badge: "LECTURERS BY EXPERTISE GROUP", + pkk_kk_ai: "AI Expertise Group", + pkk_kk_rpl: "Software Engineering Expertise Group", + pkk_kk_net: "Network & Security Expertise Group", + pkk_kk_si: "Information Systems Expertise Group", + + // --- subject-and-courses.html --- + sc_badge: "CURRICULUM & COURSES", + sc_desc: "Summary of course structure and PLO mapping in Informatics UNTAN Curriculum.", + sc_table_cpl: "PLO", + sc_table_focus: "Focus", + sc_table_courses: "Related Course Examples", + sc_semester_dist: "Semester Distribution", + sc_table_stage: "Stage", + sc_table_character: "General Character", + sc_stage_foundation: "Foundation", + sc_stage_core: "Core Strengthening", + sc_stage_specialization: "Specialization & Integration", + sc_stage_professional: "Professional", + sc_electives: "Elective Courses", + + // --- ifuntanhub.html --- + hub_nav_aria: "Main navigation", + hub_login_aria: "Login to dashboard", + hub_docs_aria: "View documentation", + hub_nav_init: "Init", + hub_nav_features: "Features", + hub_nav_protocols: "Protocols", + hub_nav_support: "Support", + hub_auth_login: "AUTH_LOGIN", + hub_status_operational: "System Status: Operational", + hub_hero: "Deploy Your Research Instantly.", + hub_desc: "Exclusive PaaS platform for Informatics UNTAN. Simplify your thesis work with modern container-based servers ready to use.", + hub_start: "START DEPLOYMENT", + hub_docs: "VIEW DOCUMENTATION", + hub_core_capabilities: "// CORE_CAPABILITIES", + hub_feature_title_autodeploy: "Auto Deployment", + hub_feature_title_db: "One-Click DB", + hub_feature_title_ssl: "HTTPS/SSL", + hub_feature_title_monitoring: "Monitoring", + hub_feature_title_dockerized: "Dockerized", + hub_feature_title_latency: "Low Latency", + hub_feature_cicd: "Instant CI/CD pipeline for student Git repositories.", + hub_feature_db: "PostgreSQL, MySQL, & Redis installation without manual configuration.", + hub_feature_ssl: "Automatic SSL security certificates for all subdomains.", + hub_feature_monitor: "Real-time CPU and Memory usage statistics dashboard.", + hub_feature_docker: "Full isolation between student projects using Docker.", + hub_feature_latency: "Super fast access via UNTAN local server infrastructure.", + hub_workflow: "Integrated Workflow.", + hub_step_git: "Git Connection", + hub_step_git_desc: "Connect your repository. Server will detect the framework automatically.", + hub_step_build: "Build Container", + hub_step_build_desc: "Application is wrapped into an efficient and secure Docker image.", + hub_step_publish: "Auto Publish", + hub_step_publish_desc: "Every code change will be redeployed without downtime.", + hub_console_label: "Console: Deployment", + hub_build_info: "[BUILD_INFO]", + hub_console_detecting: "Detecting language: Next.js v14.0", + hub_console_building: "Building static assets...", + hub_console_ready: "✓ Container ready (sha256:7f28a...)", + hub_console_live: "➜ Live at: ta-web.ifuntanhub.dev", + hub_console_listening: "_ (listening for git push...)", + hub_protocols_title: "// PROTOCOLS", + hub_step1_label: "STEP_01", + hub_step2_label: "STEP_02", + hub_step3_label: "STEP_03", + hub_step4_label: "STEP_04", + hub_tab_preparation: "Preparation", + hub_tab_documentation: "Documentation", + hub_tab_verification: "Verification", + hub_tab_deployment: "Deployment", + hub_sop1: "Prepare Student ID and KP/TA Registration Proof in standard PDF format.", + hub_sop2: "Complete the Application Letter. Define your Stack requirements (Node, Python, Docker).", + hub_sop3: "Validation by Supervisor through official signature on related documents.", + hub_sop4: "Submit files to admin. Dashboard access will be activated after verification is complete.", + hub_download_sop: "DOWNLOAD_SOP_FORM.PDF", + hub_supervisor_note: "Must be approved by Supervisor", + hub_resource_policy: "Resource Policy.", + hub_default_quota: "Default Student Quota", + hub_policy_memory: "// Memory Limit", + hub_policy_storage: "// Storage", + hub_policy_ssl: "// SSL Status", + hub_policy_autostop: "// Auto-Stop", + hub_footer_desc: "Official Deployment Infrastructure for Informatics students at Tanjungpura University. Self-managed by Informatics Lab.", + hub_footer_nav: "Navigation", + hub_footer_doc: "Documentation", + hub_footer_status: "Server Status", + hub_footer_security: "Security Audit", + hub_footer_lab: "Lab Location", + hub_lab_address: "Computer Lab 2nd Floor,
Informatics Engineering Building UNTAN,
Pontianak, West Kalimantan.", + hub_footer_copyright: "© 2026 UNTAN INFORMATICS DEPARTMENT. ALL SYSTEMS GO.", + hub_footer_tagline: "DESIGNED FOR SCHOLARS & BUILDERS.", + + // --- Luco Chatbot --- + luco_greeting: "Hi! Can Luco help you? 💬", + luco_name: "Luco", + luco_role: "Informatics Assistant", + luco_placeholder: "Type a message...", + luco_welcome: "Hey there! 👋 I'm Luco, your friendly bird assistant from Informatics UNTAN! I'm here to help you with info about our study program, receive your feedback, or connect you with collaboration opportunities. What can I help you with today? 🐦", + luco_thinking: "Luco is thinking...", + luco_error: "Oh no! 😅 Luco is having a little trouble right now. Please try again in a moment!", + luco_fallback: "Oops! 🐣 Luco is still learning and just hatched recently, so I don't know everything yet. Please try asking something else, or contact the department admin directly!", + luco_ask_contact: "For collaboration inquiries, may Luco have your name and email/phone number?", + luco_thanks_feedback: "Thank you so much for your feedback! 🙏 Your input is very valuable to us.", + luco_thanks_kerjasama: "Thank you! 🤝 Our team will contact you soon.", + luco_aria_open: "Open chat with Luco", + luco_aria_close: "Close chat", + luco_aria_send: "Send message", + + // --- profil.html --- + profile_badge: "PROGRAM PROFILE", + profile_title: "Informatics Study Program Profile", + profile_subtitle: "Learn more about the vision, mission, goals, and organizational structure of the Informatics Study Program at Tanjungpura University.", + section_vision_mission: "Vision & Mission", + vision_title: "Vision", + vision_text: "To become a leading, innovative, and globally competitive Informatics Study Program focusing on intelligent informatics for sustainability and community empowerment through technology solutions rooted in local wisdom.", + mission_title: "Mission", + mission_1_title: "Excellent OBE Education", + mission_1_desc: "To deliver excellent and innovative education in intelligent informatics through an OBE approach to produce graduates who are competent, adaptive, ethical, and globally competitive.", + mission_2_title: "Research for the SDGs", + mission_2_desc: "To develop high-quality research in intelligent informatics that supports the achievement of the Sustainable Development Goals (SDGs) and addresses both local and global challenges.", + mission_3_title: "Community Service via Local Wisdom", + mission_3_desc: "To implement and develop technology solutions rooted in local wisdom through community service activities to empower communities in an inclusive and sustainable manner.", + mission_4_title: "Strategic Partnerships", + mission_4_desc: "To establish strategic partnerships with industry, government, and academic institutions to strengthen the ecosystem of research, innovation, and the application of intelligent informatics that generates tangible societal impact.", + mission_5_title: "Ethical Academic Culture", + mission_5_desc: "To foster an ethical, collaborative, and creative academic culture oriented toward lifelong learning to prepare excellent human resources capable of addressing technological disruption.", + section_goals: "Goals", + goals_title: "Goals", + goals_intro: "The goals of the Informatics Study Program at UNTAN are derived from its vision and mission to ensure that every academic activity produces tangible impact for graduates, science, and society.", + goals_1_title: "Excellent & Ethical Graduates", + goals_1_desc: "To produce graduates who are excellent, innovative, and globally competitive, with strong competencies in intelligent informatics and upholding ethics, social responsibility, and a lifelong learning spirit.", + goals_2_title: "Adaptive OBE Curriculum", + goals_2_desc: "To develop an OBE-based curriculum that is adaptive to technological developments and industry needs, integrating values of local wisdom and sustainability.", + goals_3_title: "SDGs-Aligned Research", + goals_3_desc: "To encourage quality research in intelligent informatics that contributes to the advancement of science, appropriate technology, and solutions to global and local challenges within the SDGs framework.", + goals_4_title: "Sustainable Empowerment", + goals_4_desc: "To conduct community service based on informatics technology that supports inclusive and sustainable community empowerment.", + goals_5_title: "Multi-level Collaboration", + goals_5_desc: "To establish strategic collaboration with stakeholders at local, national, and international levels to strengthen institutional capacity and expand the study program's impact.", + section_history: "History", + section_organization: "Organizational Structure", + org_intro: "The organizational structure of the Informatics Department at UNTAN consists of department leadership, study program coordinators, laboratory coordinators, expertise group heads, and supporting staff working together to achieve the department's vision and mission.", + org_leadership: "Department Leadership", + org_lab_heads: "Laboratory Coordinators", + org_kk: "Expertise Groups (KK)", + org_support_staff: "Supporting Staff", + see_also: "See also", + + // --- struktur-org.html --- + breadcrumb_struktur: "Organizational Structure", + struktur_badge: "ORGANIZATIONAL STRUCTURE", + struktur_page_title: "Department Organizational Structure", + struktur_page_subtitle: "Department leadership, study program coordinators, laboratory coordinators, expertise groups, and supporting staff building the Informatics Department at UNTAN.", + profil_page_title: "Program Profile", + profil_vision_title: "Vision", + profil_vision_text: "To become a leading, innovative, and globally competitive Informatics Study Program focusing on intelligent informatics for sustainability and community empowerment through technology solutions rooted in local wisdom.", + profil_mission_title: "Mission", + profil_mission_1: "To deliver excellent and innovative education in intelligent informatics through an OBE approach to produce graduates who are competent, adaptive, ethical, and globally competitive.", + profil_mission_2: "To develop high-quality research in intelligent informatics that supports the achievement of the Sustainable Development Goals (SDGs) and addresses both local and global challenges.", + profil_mission_3: "To implement and develop technology solutions rooted in local wisdom through community service activities to empower communities in an inclusive and sustainable manner.", + profil_mission_4: "To establish strategic partnerships with industry, government, and academic institutions to strengthen the ecosystem of research, innovation, and the application of intelligent informatics that generates tangible societal impact.", + profil_mission_5: "To foster an ethical, collaborative, and creative academic culture oriented toward lifelong learning to prepare excellent human resources capable of addressing technological disruption.", + profil_history_title: "History", + profil_history_est: "Established in 1993", + profil_history_desc: "The Informatics Study Program at Tanjungpura University was established in 1993 as part of the Faculty of Engineering. Since then, the program has continued to grow and produce thousands of graduates who contribute to various sectors.", + profil_milestone_1: "1993 - Study Program Establishment", + profil_milestone_2: "2010 - B Accreditation from BAN-PT", + profil_milestone_3: "2020 - Excellent Accreditation from BAN-PT", + profil_milestone_4: "2024 - OBE Curriculum with 4 Concentrations", + profil_org_title: "Organizational Structure", + profil_kaprodi: "Head of Study Program", + profil_sekprodi: "Secretary of Study Program", + profil_kepala_lab: "Laboratory Head", + profil_koordinator: "Academic Coordinator", + + // --- fasilitas.html --- + fasilitas_page_title: "Facilities & Laboratories", + fasilitas_intro: "The Informatics Study Program at UNTAN is equipped with modern laboratory facilities to support learning and research activities.", + lab_network_title: "Computer Network Laboratory", + lab_network_desc: "Laboratory for practicum and research in computer networking, cybersecurity, and system administration.", + lab_se_title: "Software Engineering Laboratory", + lab_se_desc: "Software development facility with various modern platforms and frameworks.", + lab_is_title: "Information Systems Laboratory", + lab_is_desc: "Laboratory for information systems development, databases, and business analysis.", + lab_ai_title: "Artificial Intelligence Laboratory", + lab_ai_desc: "Computing facility for machine learning, computer vision, and natural language processing research.", + lab_multimedia_title: "Multimedia Laboratory", + lab_multimedia_desc: "Laboratory for multimedia content development, games, and virtual reality.", + lab_head: "Lab Head", + lab_equipment: "Main Equipment", + + // --- riset.html --- + nav_research: "Research", + riset_title: "Research & Community Service", + riset_subtitle: "List of research and community service activities by Informatics UNTAN lecturers", + riset_filter_all: "All", + riset_filter_penelitian: "Research", + riset_filter_pkm: "Community Service", + riset_search_placeholder: "Search by title or researcher name...", + riset_stat_total: "Total Activities", + riset_stat_penelitian: "Research", + riset_stat_pkm: "Community Service", + riset_stat_shown: "Displayed", + riset_load_more: "Load More", + riset_empty: "No data matches your search.", + + // --- kontributor.html --- + kontrib_page_title: "Submit Your Work - Informatics UNTAN", + kontrib_hero_badge: "CONTRIBUTOR PROGRAM", + kontrib_hero_title: "Share Your Writing", + kontrib_hero_desc: "Write and submit your article to be featured on the official Informatics UNTAN channels. The editorial team will review and contact you.", + kontrib_step1: "Write", + kontrib_step1_desc: "Create an article in your chosen category", + kontrib_step2: "Submit", + kontrib_step2_desc: "Submit the form and get a tracking code", + kontrib_step3: "Track Status", + kontrib_step3_desc: "Check your submission's progress anytime", + kontrib_form_title: "Submission Form", + kontrib_form_subtitle: "Fill in all fields completely. Submitted work will be reviewed within 3-7 business days.", + kontrib_nama: "Author Name", + kontrib_nama_placeholder: "Your full name", + kontrib_email: "Email Address", + kontrib_email_placeholder: "email@example.com", + kontrib_judul: "Article Title", + kontrib_judul_placeholder: "An engaging and descriptive title", + kontrib_kategori: "Category", + kontrib_kat_pilih: "Select a category...", + kontrib_kat_berita: "Kabar Informatika", + kontrib_kat_rubrik: "Informatika Berdampak", + kontrib_kat_people: "People Stories", + kontrib_body: "Article Content", + kontrib_body_hint: "Minimum 200 characters. Use the toolbar to format your text.", + kontrib_submit: "Submit Work", + kontrib_submitting: "Submitting...", + kontrib_success_title: "Work Submitted Successfully!", + kontrib_success_desc: "Save the following tracking code to monitor your submission status.", + kontrib_success_kode_label: "Your Tracking Code", + kontrib_success_email_info: "Status can also be tracked via email:", + kontrib_submit_another: "Submit Another Work", + kontrib_monitor_title: "Track Submission Status", + kontrib_monitor_desc: "Enter your email or tracking code to check your submission status.", + kontrib_monitor_email_placeholder: "Email or tracking code (e.g. KTR-20260407-AB12)", + kontrib_monitor_btn: "Check Status", + kontrib_monitor_checking: "Checking...", + kontrib_status_draft: "Awaiting Review", + kontrib_status_review: "Under Review", + kontrib_status_revisi: "Needs Revision", + kontrib_status_publish: "Published", + kontrib_status_ditolak: "Rejected", + kontrib_catatan_admin: "Editorial Note", + kontrib_no_result: "No submissions found for this email.", + kontrib_error_submit: "Failed to submit. Check your connection and try again.", + kontrib_error_fetch: "Failed to load status. Check your connection and try again.", + kontrib_tanggal: "Submitted on", + kontrib_copy_kode: "Copy Code", + kontrib_copied: "Copied!", + kontrib_gambar: "Thumbnail Image", + kontrib_gambar_hint: "JPG/PNG/WebP, max 5 MB. Optional, but highly recommended.", + kontrib_gambar_choose: "Choose Image", + kontrib_gambar_change: "Change Image", + kontrib_gambar_remove: "Remove", + kontrib_gambar_uploading: "Uploading image...", + kontrib_gambar_error: "Failed to upload image. Please try again.", + kontrib_gambar_size_error: "File size exceeds 5 MB.", + kontrib_gambar_type_error: "Unsupported format. Use JPG, PNG, or WebP.", + kontrib_guidelines_title: "Writing Guidelines", + kontrib_guideline_1: "Use proper Indonesian language (Bahasa Indonesia).", + kontrib_guideline_2: "Minimum article length is 500 words.", + kontrib_guideline_3: "Include accurate and verifiable facts and data.", + kontrib_guideline_4: "Avoid plagiarism. Work must be original.", + kontrib_guideline_5: "The editorial team reserves the right to edit content for editorial purposes.", + } +}; + +// ─── State ──────────────────────────────────────────────────────────────────── + +const STORAGE_KEY = 'if_untan_lang'; + +function detectLang() { + // 1. Preferensi user yang tersimpan + const saved = localStorage.getItem(STORAGE_KEY); + if (saved === 'id' || saved === 'en') return saved; + + // 2. Bahasa browser + const browserLang = (navigator.language || navigator.userLanguage || 'id').toLowerCase(); + return browserLang.startsWith('en') ? 'en' : 'id'; +} + +let currentLang = detectLang(); + +// ─── Core ───────────────────────────────────────────────────────────────────── + +function t(key) { + return translations[currentLang]?.[key] ?? translations['id']?.[key] ?? key; +} + +function getLang() { + return currentLang; +} + +function applyLang() { + // Teks biasa + document.querySelectorAll('[data-i18n]').forEach(el => { + const key = el.getAttribute('data-i18n'); + const val = t(key); + if (val) el.textContent = val; + }); + + // HTML (untuk teks dengan markup) + document.querySelectorAll('[data-i18n-html]').forEach(el => { + const key = el.getAttribute('data-i18n-html'); + const val = t(key); + if (val) el.innerHTML = val; + }); + + // Placeholder input + document.querySelectorAll('[data-i18n-placeholder]').forEach(el => { + const key = el.getAttribute('data-i18n-placeholder'); + const val = t(key); + if (val) el.placeholder = val; + }); + + // Aria-label + document.querySelectorAll('[data-i18n-aria]').forEach(el => { + const key = el.getAttribute('data-i18n-aria'); + const val = t(key); + if (val) el.setAttribute('aria-label', val); + }); + + // lang attribute di + document.documentElement.lang = currentLang; + + // Update toggle button UI + updateToggleBtn(); + + // Beritahu script lain + document.dispatchEvent(new CustomEvent('languageChanged', { detail: { lang: currentLang } })); +} + +function setLang(lang) { + if (lang !== 'id' && lang !== 'en') return; + currentLang = lang; + localStorage.setItem(STORAGE_KEY, lang); + applyLang(); +} + +function toggleLanguage() { + setLang(currentLang === 'id' ? 'en' : 'id'); +} + +function updateToggleBtn() { + document.querySelectorAll('.language-toggle-btn').forEach(btn => { + btn.innerHTML = currentLang === 'id' + ? 'ID | EN' + : 'ID | EN'; + btn.setAttribute('aria-label', currentLang === 'id' ? 'Switch to English' : 'Ganti ke Bahasa Indonesia'); + }); +} + +// ─── Init ───────────────────────────────────────────────────────────────────── + +document.addEventListener('DOMContentLoaded', () => { + document.querySelectorAll('.language-toggle-btn').forEach(btn => { + btn.addEventListener('click', toggleLanguage); + }); + applyLang(); +}); diff --git a/assets/global/output.css b/assets/global/output.css new file mode 100644 index 0000000..5f1a8c7 --- /dev/null +++ b/assets/global/output.css @@ -0,0 +1,5956 @@ +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} + +/* +! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS +*/ + +html, +:host { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: "Roboto", sans-serif; + /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ + -webkit-tap-highlight-color: transparent; + /* 7 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-feature-settings: normal; + /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + letter-spacing: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +input:where([type='button']), +input:where([type='reset']), +input:where([type='submit']) { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ + +[hidden]:where(:not([hidden="until-found"])) { + display: none; +} + +body { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)); +} + +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.pointer-events-none { + pointer-events: none; +} + +.pointer-events-auto { + pointer-events: auto; +} + +.visible { + visibility: visible; +} + +.invisible { + visibility: hidden; +} + +.collapse { + visibility: collapse; +} + +.\!static { + position: static !important; +} + +.static { + position: static; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.sticky { + position: sticky; +} + +.inset-0 { + inset: 0px; +} + +.inset-x-0 { + left: 0px; + right: 0px; +} + +.inset-y-0 { + top: 0px; + bottom: 0px; +} + +.\!-bottom-2 { + bottom: -0.5rem !important; +} + +.\!bottom-0 { + bottom: 0px !important; +} + +.-left-16 { + left: -4rem; +} + +.bottom-0 { + bottom: 0px; +} + +.bottom-16 { + bottom: 4rem; +} + +.bottom-2 { + bottom: 0.5rem; +} + +.bottom-24 { + bottom: 6rem; +} + +.bottom-4 { + bottom: 1rem; +} + +.bottom-6 { + bottom: 1.5rem; +} + +.bottom-\[4\.5rem\] { + bottom: 4.5rem; +} + +.left-0 { + left: 0px; +} + +.left-2 { + left: 0.5rem; +} + +.left-3 { + left: 0.75rem; +} + +.left-4 { + left: 1rem; +} + +.left-\[25\%\] { + left: 25%; +} + +.left-full { + left: 100%; +} + +.right-0 { + right: 0px; +} + +.right-2 { + right: 0.5rem; +} + +.right-3 { + right: 0.75rem; +} + +.right-4 { + right: 1rem; +} + +.right-6 { + right: 1.5rem; +} + +.right-\[33\.333\%\] { + right: 33.333%; +} + +.top-0 { + top: 0px; +} + +.top-1\/2 { + top: 50%; +} + +.top-2 { + top: 0.5rem; +} + +.top-24 { + top: 6rem; +} + +.top-3 { + top: 0.75rem; +} + +.top-4 { + top: 1rem; +} + +.top-6 { + top: 1.5rem; +} + +.top-\[148px\] { + top: 148px; +} + +.top-\[96px\] { + top: 96px; +} + +.top-\[97px\] { + top: 97px; +} + +.top-full { + top: 100%; +} + +.-z-10 { + z-index: -10; +} + +.z-0 { + z-index: 0; +} + +.z-10 { + z-index: 10; +} + +.z-20 { + z-index: 20; +} + +.z-30 { + z-index: 30; +} + +.z-40 { + z-index: 40; +} + +.z-50 { + z-index: 50; +} + +.z-\[60\] { + z-index: 60; +} + +.order-1 { + order: 1; +} + +.order-2 { + order: 2; +} + +.col-span-1 { + grid-column: span 1 / span 1; +} + +.col-span-4 { + grid-column: span 4 / span 4; +} + +.col-span-5 { + grid-column: span 5 / span 5; +} + +.col-span-7 { + grid-column: span 7 / span 7; +} + +.col-span-8 { + grid-column: span 8 / span 8; +} + +.col-span-full { + grid-column: 1 / -1; +} + +.-mx-1 { + margin-left: -0.25rem; + margin-right: -0.25rem; +} + +.-mx-2 { + margin-left: -0.5rem; + margin-right: -0.5rem; +} + +.-mx-4 { + margin-left: -1rem; + margin-right: -1rem; +} + +.mx-0\.5 { + margin-left: 0.125rem; + margin-right: 0.125rem; +} + +.mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} + +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.mx-6 { + margin-left: 1.5rem; + margin-right: 1.5rem; +} + +.mx-8 { + margin-left: 2rem; + margin-right: 2rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-1 { + margin-top: 0.25rem; + margin-bottom: 0.25rem; +} + +.my-3 { + margin-top: 0.75rem; + margin-bottom: 0.75rem; +} + +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.-mb-1 { + margin-bottom: -0.25rem; +} + +.-mb-12 { + margin-bottom: -3rem; +} + +.-mb-32 { + margin-bottom: -8rem; +} + +.-mb-px { + margin-bottom: -1px; +} + +.-ml-12 { + margin-left: -3rem; +} + +.-ml-32 { + margin-left: -8rem; +} + +.-mr-12 { + margin-right: -3rem; +} + +.-mr-16 { + margin-right: -4rem; +} + +.-mr-20 { + margin-right: -5rem; +} + +.-mr-48 { + margin-right: -12rem; +} + +.-mt-12 { + margin-top: -3rem; +} + +.-mt-16 { + margin-top: -4rem; +} + +.-mt-20 { + margin-top: -5rem; +} + +.-mt-48 { + margin-top: -12rem; +} + +.mb-0 { + margin-bottom: 0px; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.mb-1\.5 { + margin-bottom: 0.375rem; +} + +.mb-10 { + margin-bottom: 2.5rem; +} + +.mb-12 { + margin-bottom: 3rem; +} + +.mb-16 { + margin-bottom: 4rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-20 { + margin-bottom: 5rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.mb-6 { + margin-bottom: 1.5rem; +} + +.mb-7 { + margin-bottom: 1.75rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.ml-0 { + margin-left: 0px; +} + +.ml-0\.5 { + margin-left: 0.125rem; +} + +.ml-1 { + margin-left: 0.25rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.ml-auto { + margin-left: auto; +} + +.mr-1 { + margin-right: 0.25rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mt-0 { + margin-top: 0px; +} + +.mt-0\.5 { + margin-top: 0.125rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mt-1\.5 { + margin-top: 0.375rem; +} + +.mt-10 { + margin-top: 2.5rem; +} + +.mt-12 { + margin-top: 3rem; +} + +.mt-16 { + margin-top: 4rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.mt-auto { + margin-top: auto; +} + +.box-border { + box-sizing: border-box; +} + +.line-clamp-1 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; +} + +.line-clamp-2 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.line-clamp-3 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; +} + +.line-clamp-4 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 4; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + +.inline { + display: inline; +} + +.flex { + display: flex; +} + +.inline-flex { + display: inline-flex; +} + +.table { + display: table; +} + +.\!grid { + display: grid !important; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.aspect-\[16\/10\] { + aspect-ratio: 16/10; +} + +.aspect-\[16\/9\] { + aspect-ratio: 16/9; +} + +.aspect-\[4\/3\] { + aspect-ratio: 4/3; +} + +.aspect-square { + aspect-ratio: 1 / 1; +} + +.aspect-video { + aspect-ratio: 16 / 9; +} + +.h-0 { + height: 0px; +} + +.h-1 { + height: 0.25rem; +} + +.h-1\.5 { + height: 0.375rem; +} + +.h-1\/2 { + height: 50%; +} + +.h-10 { + height: 2.5rem; +} + +.h-12 { + height: 3rem; +} + +.h-14 { + height: 3.5rem; +} + +.h-16 { + height: 4rem; +} + +.h-2 { + height: 0.5rem; +} + +.h-20 { + height: 5rem; +} + +.h-24 { + height: 6rem; +} + +.h-3 { + height: 0.75rem; +} + +.h-3\.5 { + height: 0.875rem; +} + +.h-32 { + height: 8rem; +} + +.h-4 { + height: 1rem; +} + +.h-40 { + height: 10rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-6 { + height: 1.5rem; +} + +.h-64 { + height: 16rem; +} + +.h-7 { + height: 1.75rem; +} + +.h-72 { + height: 18rem; +} + +.h-8 { + height: 2rem; +} + +.h-9 { + height: 2.25rem; +} + +.h-96 { + height: 24rem; +} + +.h-\[1\.5rem\] { + height: 1.5rem; +} + +.h-\[18px\] { + height: 18px; +} + +.h-\[1px\] { + height: 1px; +} + +.h-\[2\.5rem\] { + height: 2.5rem; +} + +.h-\[2px\] { + height: 2px; +} + +.h-\[3\.5rem\] { + height: 3.5rem; +} + +.h-\[500px\] { + height: 500px; +} + +.h-\[calc\(100vh-150px\)\] { + height: calc(100vh - 150px); +} + +.h-\[calc\(100vh-88px\)\] { + height: calc(100vh - 88px); +} + +.h-auto { + height: auto; +} + +.h-full { + height: 100%; +} + +.h-px { + height: 1px; +} + +.max-h-\[400px\] { + max-height: 400px; +} + +.min-h-\[300px\] { + min-height: 300px; +} + +.min-h-\[400px\] { + min-height: 400px; +} + +.min-h-\[500px\] { + min-height: 500px; +} + +.min-h-\[600px\] { + min-height: 600px; +} + +.min-h-screen { + min-height: 100vh; +} + +.\!w-auto { + width: auto !important; +} + +.w-1 { + width: 0.25rem; +} + +.w-1\.5 { + width: 0.375rem; +} + +.w-1\/2 { + width: 50%; +} + +.w-1\/3 { + width: 33.333333%; +} + +.w-1\/4 { + width: 25%; +} + +.w-10 { + width: 2.5rem; +} + +.w-10\/12 { + width: 83.333333%; +} + +.w-11\/12 { + width: 91.666667%; +} + +.w-12 { + width: 3rem; +} + +.w-14 { + width: 3.5rem; +} + +.w-16 { + width: 4rem; +} + +.w-2 { + width: 0.5rem; +} + +.w-2\/3 { + width: 66.666667%; +} + +.w-20 { + width: 5rem; +} + +.w-24 { + width: 6rem; +} + +.w-3 { + width: 0.75rem; +} + +.w-3\.5 { + width: 0.875rem; +} + +.w-3\/4 { + width: 75%; +} + +.w-32 { + width: 8rem; +} + +.w-4 { + width: 1rem; +} + +.w-4\/5 { + width: 80%; +} + +.w-4\/6 { + width: 66.666667%; +} + +.w-40 { + width: 10rem; +} + +.w-5 { + width: 1.25rem; +} + +.w-5\/6 { + width: 83.333333%; +} + +.w-56 { + width: 14rem; +} + +.w-6 { + width: 1.5rem; +} + +.w-64 { + width: 16rem; +} + +.w-7 { + width: 1.75rem; +} + +.w-8 { + width: 2rem; +} + +.w-80 { + width: 20rem; +} + +.w-9 { + width: 2.25rem; +} + +.w-96 { + width: 24rem; +} + +.w-\[18px\] { + width: 18px; +} + +.w-\[2px\] { + width: 2px; +} + +.w-\[400px\] { + width: 400px; +} + +.w-\[480px\] { + width: 480px; +} + +.w-\[85\%\] { + width: 85%; +} + +.w-\[85vw\] { + width: 85vw; +} + +.w-\[calc\(100\%\+0\.5rem\)\] { + width: calc(100% + 0.5rem); +} + +.w-\[calc\(100vw-1\.5rem\)\] { + width: calc(100vw - 1.5rem); +} + +.w-auto { + width: auto; +} + +.w-fit { + width: -moz-fit-content; + width: fit-content; +} + +.w-full { + width: 100%; +} + +.min-w-0 { + min-width: 0px; +} + +.min-w-full { + min-width: 100%; +} + +.max-w-2xl { + max-width: 42rem; +} + +.max-w-3xl { + max-width: 48rem; +} + +.max-w-4xl { + max-width: 56rem; +} + +.max-w-5xl { + max-width: 64rem; +} + +.max-w-6xl { + max-width: 72rem; +} + +.max-w-7xl { + max-width: 80rem; +} + +.max-w-\[1400px\] { + max-width: 1400px; +} + +.max-w-\[1440px\] { + max-width: 1440px; +} + +.max-w-\[160px\] { + max-width: 160px; +} + +.max-w-\[200px\] { + max-width: 200px; +} + +.max-w-\[24rem\] { + max-width: 24rem; +} + +.max-w-\[80\%\] { + max-width: 80%; +} + +.max-w-\[85vw\] { + max-width: 85vw; +} + +.max-w-full { + max-width: 100%; +} + +.max-w-lg { + max-width: 32rem; +} + +.max-w-md { + max-width: 28rem; +} + +.max-w-sm { + max-width: 24rem; +} + +.max-w-xl { + max-width: 36rem; +} + +.flex-1 { + flex: 1 1 0%; +} + +.flex-none { + flex: none; +} + +.flex-shrink { + flex-shrink: 1; +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.shrink-0 { + flex-shrink: 0; +} + +.flex-grow { + flex-grow: 1; +} + +.grow { + flex-grow: 1; +} + +.border-collapse { + border-collapse: collapse; +} + +.origin-bottom-right { + transform-origin: bottom right; +} + +.-translate-x-2 { + --tw-translate-x: -0.5rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.-translate-x-full { + --tw-translate-x: -100%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.-translate-y-1\/2 { + --tw-translate-y: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-y-1 { + --tw-translate-y: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-y-2 { + --tw-translate-y: 0.5rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-y-4 { + --tw-translate-y: 1rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-50 { + --tw-scale-x: .5; + --tw-scale-y: .5; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +@keyframes pulse { + 50% { + opacity: .5; + } +} + +.animate-pulse { + animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +.animate-spin { + animation: spin 1s linear infinite; +} + +.cursor-grab { + cursor: grab; +} + +.cursor-pointer { + cursor: pointer; +} + +.select-none { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.resize { + resize: both; +} + +.scroll-mt-72 { + scroll-margin-top: 18rem; +} + +.scroll-mt-\[270px\] { + scroll-margin-top: 270px; +} + +.list-disc { + list-style-type: disc; +} + +.auto-rows-\[250px\] { + grid-auto-rows: 250px; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.grid-cols-\[84px_1fr\] { + grid-template-columns: 84px 1fr; +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.content-start { + align-content: flex-start; +} + +.items-start { + align-items: flex-start; +} + +.items-end { + align-items: flex-end; +} + +.items-center { + align-items: center; +} + +.items-stretch { + align-items: stretch; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.gap-0 { + gap: 0px; +} + +.gap-1 { + gap: 0.25rem; +} + +.gap-1\.5 { + gap: 0.375rem; +} + +.gap-10 { + gap: 2.5rem; +} + +.gap-12 { + gap: 3rem; +} + +.gap-16 { + gap: 4rem; +} + +.gap-2 { + gap: 0.5rem; +} + +.gap-2\.5 { + gap: 0.625rem; +} + +.gap-20 { + gap: 5rem; +} + +.gap-3 { + gap: 0.75rem; +} + +.gap-4 { + gap: 1rem; +} + +.gap-5 { + gap: 1.25rem; +} + +.gap-6 { + gap: 1.5rem; +} + +.gap-7 { + gap: 1.75rem; +} + +.gap-8 { + gap: 2rem; +} + +.gap-x-3 { + -moz-column-gap: 0.75rem; + column-gap: 0.75rem; +} + +.gap-x-8 { + -moz-column-gap: 2rem; + column-gap: 2rem; +} + +.gap-y-10 { + row-gap: 2.5rem; +} + +.gap-y-12 { + row-gap: 3rem; +} + +.gap-y-2 { + row-gap: 0.5rem; +} + +.space-x-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(2rem * var(--tw-space-x-reverse)); + margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-y-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); +} + +.space-y-10 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2.5rem * var(--tw-space-y-reverse)); +} + +.space-y-12 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(3rem * var(--tw-space-y-reverse)); +} + +.space-y-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); +} + +.space-y-3 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); +} + +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + +.space-y-5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); +} + +.space-y-6 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); +} + +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} + +.space-y-\[2px\] > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2px * var(--tw-space-y-reverse)); +} + +.divide-y > :not([hidden]) ~ :not([hidden]) { + --tw-divide-y-reverse: 0; + border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); +} + +.divide-slate-100 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(241 245 249 / var(--tw-divide-opacity, 1)); +} + +.self-start { + align-self: flex-start; +} + +.self-end { + align-self: flex-end; +} + +.self-stretch { + align-self: stretch; +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-x-auto { + overflow-x: auto; +} + +.overflow-y-auto { + overflow-y: auto; +} + +.overflow-x-hidden { + overflow-x: hidden; +} + +.scroll-smooth { + scroll-behavior: smooth; +} + +.truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.whitespace-nowrap { + white-space: nowrap; +} + +.whitespace-pre-wrap { + white-space: pre-wrap; +} + +.break-all { + word-break: break-all; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-2xl { + border-radius: 1rem; +} + +.rounded-3xl { + border-radius: 1.5rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.rounded-sm { + border-radius: 0.125rem; +} + +.rounded-xl { + border-radius: 0.75rem; +} + +.rounded-r-lg { + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; +} + +.rounded-t-\[3rem\] { + border-top-left-radius: 3rem; + border-top-right-radius: 3rem; +} + +.rounded-bl-md { + border-bottom-left-radius: 0.375rem; +} + +.rounded-br-md { + border-bottom-right-radius: 0.375rem; +} + +.border { + border-width: 1px; +} + +.border-2 { + border-width: 2px; +} + +.border-y { + border-top-width: 1px; + border-bottom-width: 1px; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-b-2 { + border-bottom-width: 2px; +} + +.border-b-4 { + border-bottom-width: 4px; +} + +.border-l { + border-left-width: 1px; +} + +.border-l-2 { + border-left-width: 2px; +} + +.border-l-4 { + border-left-width: 4px; +} + +.border-r { + border-right-width: 1px; +} + +.border-t { + border-top-width: 1px; +} + +.border-t-2 { + border-top-width: 2px; +} + +.border-t-4 { + border-top-width: 4px; +} + +.border-t-8 { + border-top-width: 8px; +} + +.border-t-\[8px\] { + border-top-width: 8px; +} + +.border-dashed { + border-style: dashed; +} + +.border-\[\#003150\] { + --tw-border-opacity: 1; + border-color: rgb(0 49 80 / var(--tw-border-opacity, 1)); +} + +.border-amber-100 { + --tw-border-opacity: 1; + border-color: rgb(254 243 199 / var(--tw-border-opacity, 1)); +} + +.border-amber-200 { + --tw-border-opacity: 1; + border-color: rgb(253 230 138 / var(--tw-border-opacity, 1)); +} + +.border-amber-400\/40 { + border-color: rgb(251 191 36 / 0.4); +} + +.border-blue-100 { + --tw-border-opacity: 1; + border-color: rgb(219 234 254 / var(--tw-border-opacity, 1)); +} + +.border-cyan-100 { + --tw-border-opacity: 1; + border-color: rgb(207 250 254 / var(--tw-border-opacity, 1)); +} + +.border-emerald-100 { + --tw-border-opacity: 1; + border-color: rgb(209 250 229 / var(--tw-border-opacity, 1)); +} + +.border-green-100 { + --tw-border-opacity: 1; + border-color: rgb(220 252 231 / var(--tw-border-opacity, 1)); +} + +.border-green-200 { + --tw-border-opacity: 1; + border-color: rgb(187 247 208 / var(--tw-border-opacity, 1)); +} + +.border-orange-100 { + --tw-border-opacity: 1; + border-color: rgb(255 237 213 / var(--tw-border-opacity, 1)); +} + +.border-purple-100 { + --tw-border-opacity: 1; + border-color: rgb(243 232 255 / var(--tw-border-opacity, 1)); +} + +.border-red-100 { + --tw-border-opacity: 1; + border-color: rgb(254 226 226 / var(--tw-border-opacity, 1)); +} + +.border-red-200 { + --tw-border-opacity: 1; + border-color: rgb(254 202 202 / var(--tw-border-opacity, 1)); +} + +.border-red-300 { + --tw-border-opacity: 1; + border-color: rgb(252 165 165 / var(--tw-border-opacity, 1)); +} + +.border-red-400 { + --tw-border-opacity: 1; + border-color: rgb(248 113 113 / var(--tw-border-opacity, 1)); +} + +.border-red-500 { + --tw-border-opacity: 1; + border-color: rgb(239 68 68 / var(--tw-border-opacity, 1)); +} + +.border-slate-100 { + --tw-border-opacity: 1; + border-color: rgb(241 245 249 / var(--tw-border-opacity, 1)); +} + +.border-slate-100\/50 { + border-color: rgb(241 245 249 / 0.5); +} + +.border-slate-200 { + --tw-border-opacity: 1; + border-color: rgb(226 232 240 / var(--tw-border-opacity, 1)); +} + +.border-slate-200\/60 { + border-color: rgb(226 232 240 / 0.6); +} + +.border-slate-300 { + --tw-border-opacity: 1; + border-color: rgb(203 213 225 / var(--tw-border-opacity, 1)); +} + +.border-slate-800 { + --tw-border-opacity: 1; + border-color: rgb(30 41 59 / var(--tw-border-opacity, 1)); +} + +.border-slate-900 { + --tw-border-opacity: 1; + border-color: rgb(15 23 42 / var(--tw-border-opacity, 1)); +} + +.border-transparent { + border-color: transparent; +} + +.border-untan-blue { + --tw-border-opacity: 1; + border-color: rgb(0 94 184 / var(--tw-border-opacity, 1)); +} + +.border-untan-cyan { + --tw-border-opacity: 1; + border-color: rgb(0 180 216 / var(--tw-border-opacity, 1)); +} + +.border-untan-cyan\/30 { + border-color: rgb(0 180 216 / 0.3); +} + +.border-untan-navy { + --tw-border-opacity: 1; + border-color: rgb(0 49 80 / var(--tw-border-opacity, 1)); +} + +.border-untan-navy\/0 { + border-color: rgb(0 49 80 / 0); +} + +.border-untan-yellow { + --tw-border-opacity: 1; + border-color: rgb(253 185 19 / var(--tw-border-opacity, 1)); +} + +.border-untan-yellow\/20 { + border-color: rgb(253 185 19 / 0.2); +} + +.border-white { + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); +} + +.border-white\/10 { + border-color: rgb(255 255 255 / 0.1); +} + +.border-white\/20 { + border-color: rgb(255 255 255 / 0.2); +} + +.border-white\/30 { + border-color: rgb(255 255 255 / 0.3); +} + +.border-white\/5 { + border-color: rgb(255 255 255 / 0.05); +} + +.border-t-transparent { + border-top-color: transparent; +} + +.border-t-untan-blue { + --tw-border-opacity: 1; + border-top-color: rgb(0 94 184 / var(--tw-border-opacity, 1)); +} + +.bg-\[\#003150\] { + --tw-bg-opacity: 1; + background-color: rgb(0 49 80 / var(--tw-bg-opacity, 1)); +} + +.bg-\[\#1a2d42\] { + --tw-bg-opacity: 1; + background-color: rgb(26 45 66 / var(--tw-bg-opacity, 1)); +} + +.bg-\[\#FFD100\] { + --tw-bg-opacity: 1; + background-color: rgb(255 209 0 / var(--tw-bg-opacity, 1)); +} + +.bg-\[\#f8f9fa\] { + --tw-bg-opacity: 1; + background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1)); +} + +.bg-\[\#feb401\] { + --tw-bg-opacity: 1; + background-color: rgb(254 180 1 / var(--tw-bg-opacity, 1)); +} + +.bg-amber-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1)); +} + +.bg-amber-400\/20 { + background-color: rgb(251 191 36 / 0.2); +} + +.bg-amber-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1)); +} + +.bg-black { + --tw-bg-opacity: 1; + background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); +} + +.bg-black\/20 { + background-color: rgb(0 0 0 / 0.2); +} + +.bg-black\/30 { + background-color: rgb(0 0 0 / 0.3); +} + +.bg-blue-100 { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); +} + +.bg-blue-400 { + --tw-bg-opacity: 1; + background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1)); +} + +.bg-blue-50 { + --tw-bg-opacity: 1; + background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1)); +} + +.bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); +} + +.bg-blue-500\/10 { + background-color: rgb(59 130 246 / 0.1); +} + +.bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); +} + +.bg-cyan-100 { + --tw-bg-opacity: 1; + background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1)); +} + +.bg-cyan-50 { + --tw-bg-opacity: 1; + background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1)); +} + +.bg-emerald-100 { + --tw-bg-opacity: 1; + background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1)); +} + +.bg-emerald-50 { + --tw-bg-opacity: 1; + background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1)); +} + +.bg-emerald-600 { + --tw-bg-opacity: 1; + background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1)); +} + +.bg-fuchsia-600 { + --tw-bg-opacity: 1; + background-color: rgb(192 38 211 / var(--tw-bg-opacity, 1)); +} + +.bg-gray-400 { + --tw-bg-opacity: 1; + background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); +} + +.bg-green-100 { + --tw-bg-opacity: 1; + background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)); +} + +.bg-green-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1)); +} + +.bg-green-500 { + --tw-bg-opacity: 1; + background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); +} + +.bg-green-500\/80 { + background-color: rgb(34 197 94 / 0.8); +} + +.bg-indigo-100 { + --tw-bg-opacity: 1; + background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1)); +} + +.bg-indigo-50 { + --tw-bg-opacity: 1; + background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1)); +} + +.bg-orange-400 { + --tw-bg-opacity: 1; + background-color: rgb(251 146 60 / var(--tw-bg-opacity, 1)); +} + +.bg-orange-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1)); +} + +.bg-orange-600 { + --tw-bg-opacity: 1; + background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1)); +} + +.bg-pink-400 { + --tw-bg-opacity: 1; + background-color: rgb(244 114 182 / var(--tw-bg-opacity, 1)); +} + +.bg-pink-50 { + --tw-bg-opacity: 1; + background-color: rgb(253 242 248 / var(--tw-bg-opacity, 1)); +} + +.bg-purple-100 { + --tw-bg-opacity: 1; + background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1)); +} + +.bg-purple-400 { + --tw-bg-opacity: 1; + background-color: rgb(192 132 252 / var(--tw-bg-opacity, 1)); +} + +.bg-purple-50 { + --tw-bg-opacity: 1; + background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1)); +} + +.bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1)); +} + +.bg-red-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); +} + +.bg-red-50 { + --tw-bg-opacity: 1; + background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1)); +} + +.bg-red-500 { + --tw-bg-opacity: 1; + background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)); +} + +.bg-red-500\/80 { + background-color: rgb(239 68 68 / 0.8); +} + +.bg-rose-100 { + --tw-bg-opacity: 1; + background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1)); +} + +.bg-rose-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1)); +} + +.bg-sky-100 { + --tw-bg-opacity: 1; + background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1)); +} + +.bg-sky-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-100 { + --tw-bg-opacity: 1; + background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-200 { + --tw-bg-opacity: 1; + background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-300 { + --tw-bg-opacity: 1; + background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-400 { + --tw-bg-opacity: 1; + background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-50 { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-50\/30 { + background-color: rgb(248 250 252 / 0.3); +} + +.bg-slate-50\/50 { + background-color: rgb(248 250 252 / 0.5); +} + +.bg-slate-600 { + --tw-bg-opacity: 1; + background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-800 { + --tw-bg-opacity: 1; + background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-900 { + --tw-bg-opacity: 1; + background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1)); +} + +.bg-slate-900\/35 { + background-color: rgb(15 23 42 / 0.35); +} + +.bg-slate-900\/50 { + background-color: rgb(15 23 42 / 0.5); +} + +.bg-slate-900\/60 { + background-color: rgb(15 23 42 / 0.6); +} + +.bg-teal-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 253 250 / var(--tw-bg-opacity, 1)); +} + +.bg-transparent { + background-color: transparent; +} + +.bg-untan-blue { + --tw-bg-opacity: 1; + background-color: rgb(0 94 184 / var(--tw-bg-opacity, 1)); +} + +.bg-untan-blue\/10 { + background-color: rgb(0 94 184 / 0.1); +} + +.bg-untan-cyan { + --tw-bg-opacity: 1; + background-color: rgb(0 180 216 / var(--tw-bg-opacity, 1)); +} + +.bg-untan-cyan\/90 { + background-color: rgb(0 180 216 / 0.9); +} + +.bg-untan-light { + --tw-bg-opacity: 1; + background-color: rgb(238 246 255 / var(--tw-bg-opacity, 1)); +} + +.bg-untan-navy { + --tw-bg-opacity: 1; + background-color: rgb(0 49 80 / var(--tw-bg-opacity, 1)); +} + +.bg-untan-navy\/80 { + background-color: rgb(0 49 80 / 0.8); +} + +.bg-untan-navy\/85 { + background-color: rgb(0 49 80 / 0.85); +} + +.bg-untan-navy\/90 { + background-color: rgb(0 49 80 / 0.9); +} + +.bg-untan-navy\/95 { + background-color: rgb(0 49 80 / 0.95); +} + +.bg-untan-yellow { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.bg-untan-yellow\/10 { + background-color: rgb(253 185 19 / 0.1); +} + +.bg-untan-yellow\/20 { + background-color: rgb(253 185 19 / 0.2); +} + +.bg-untan-yellow\/5 { + background-color: rgb(253 185 19 / 0.05); +} + +.bg-untan-yellow\/90 { + background-color: rgb(253 185 19 / 0.9); +} + +.bg-violet-100 { + --tw-bg-opacity: 1; + background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1)); +} + +.bg-violet-50 { + --tw-bg-opacity: 1; + background-color: rgb(245 243 255 / var(--tw-bg-opacity, 1)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); +} + +.bg-white\/10 { + background-color: rgb(255 255 255 / 0.1); +} + +.bg-white\/20 { + background-color: rgb(255 255 255 / 0.2); +} + +.bg-white\/5 { + background-color: rgb(255 255 255 / 0.05); +} + +.bg-white\/80 { + background-color: rgb(255 255 255 / 0.8); +} + +.bg-yellow-400 { + --tw-bg-opacity: 1; + background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1)); +} + +.bg-yellow-50 { + --tw-bg-opacity: 1; + background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1)); +} + +.bg-yellow-500\/80 { + background-color: rgb(234 179 8 / 0.8); +} + +.bg-\[url\(\'https\:\/\/ft\.untan\.ac\.id\/wp-content\/themes\/ftuntan2020\/assets\/images\/pattern\.png\'\)\] { + background-image: url('https://ft.untan.ac.id/wp-content/themes/ftuntan2020/assets/images/pattern.png'); +} + +.bg-gradient-to-br { + background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); +} + +.bg-gradient-to-l { + background-image: linear-gradient(to left, var(--tw-gradient-stops)); +} + +.bg-gradient-to-r { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); +} + +.bg-gradient-to-t { + background-image: linear-gradient(to top, var(--tw-gradient-stops)); +} + +.from-amber-400 { + --tw-gradient-from: #fbbf24 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-amber-50 { + --tw-gradient-from: #fffbeb var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-black\/40 { + --tw-gradient-from: rgb(0 0 0 / 0.4) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-black\/60 { + --tw-gradient-from: rgb(0 0 0 / 0.6) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-black\/80 { + --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-black\/90 { + --tw-gradient-from: rgb(0 0 0 / 0.9) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-blue-50 { + --tw-gradient-from: #eff6ff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-blue-500 { + --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-blue-600 { + --tw-gradient-from: #2563eb var(--tw-gradient-from-position); + --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-cyan-500 { + --tw-gradient-from: #06b6d4 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-cyan-600 { + --tw-gradient-from: #0891b2 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-50 { + --tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-500 { + --tw-gradient-from: #10b981 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-600 { + --tw-gradient-from: #059669 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(5 150 105 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-green-50 { + --tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-indigo-600 { + --tw-gradient-from: #4f46e5 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-orange-50 { + --tw-gradient-from: #fff7ed var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-purple-50 { + --tw-gradient-from: #faf5ff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-purple-500 { + --tw-gradient-from: #a855f7 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-red-500 { + --tw-gradient-from: #ef4444 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-rose-500 { + --tw-gradient-from: #f43f5e var(--tw-gradient-from-position); + --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-rose-600 { + --tw-gradient-from: #e11d48 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-sky-400 { + --tw-gradient-from: #38bdf8 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-slate-50 { + --tw-gradient-from: #f8fafc var(--tw-gradient-from-position); + --tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-slate-700 { + --tw-gradient-from: #334155 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(51 65 85 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-slate-800 { + --tw-gradient-from: #1e293b var(--tw-gradient-from-position); + --tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-slate-900\/40 { + --tw-gradient-from: rgb(15 23 42 / 0.4) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-untan-navy { + --tw-gradient-from: #003150 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 49 80 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-untan-navy\/80 { + --tw-gradient-from: rgb(0 49 80 / 0.8) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 49 80 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-untan-navy\/90 { + --tw-gradient-from: rgb(0 49 80 / 0.9) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 49 80 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-untan-yellow\/5 { + --tw-gradient-from: rgb(253 185 19 / 0.05) var(--tw-gradient-from-position); + --tw-gradient-to: rgb(253 185 19 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-violet-500 { + --tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.via-\[\#003f7a\] { + --tw-gradient-to: rgb(0 63 122 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #003f7a var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-black\/40 { + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.4) var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-transparent { + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-untan-blue { + --tw-gradient-to: rgb(0 94 184 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #005eb8 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-untan-navy\/30 { + --tw-gradient-to: rgb(0 49 80 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), rgb(0 49 80 / 0.3) var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-untan-navy\/80 { + --tw-gradient-to: rgb(0 49 80 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), rgb(0 49 80 / 0.8) var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.to-\[\#001e3d\] { + --tw-gradient-to: #001e3d var(--tw-gradient-to-position); +} + +.to-blue-600 { + --tw-gradient-to: #2563eb var(--tw-gradient-to-position); +} + +.to-blue-700 { + --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position); +} + +.to-emerald-50 { + --tw-gradient-to: #ecfdf5 var(--tw-gradient-to-position); +} + +.to-indigo-700 { + --tw-gradient-to: #4338ca var(--tw-gradient-to-position); +} + +.to-orange-500 { + --tw-gradient-to: #f97316 var(--tw-gradient-to-position); +} + +.to-pink-500 { + --tw-gradient-to: #ec4899 var(--tw-gradient-to-position); +} + +.to-pink-600 { + --tw-gradient-to: #db2777 var(--tw-gradient-to-position); +} + +.to-pink-700 { + --tw-gradient-to: #be185d var(--tw-gradient-to-position); +} + +.to-purple-600 { + --tw-gradient-to: #9333ea var(--tw-gradient-to-position); +} + +.to-red-600 { + --tw-gradient-to: #dc2626 var(--tw-gradient-to-position); +} + +.to-sky-500 { + --tw-gradient-to: #0ea5e9 var(--tw-gradient-to-position); +} + +.to-slate-800 { + --tw-gradient-to: #1e293b var(--tw-gradient-to-position); +} + +.to-slate-900 { + --tw-gradient-to: #0f172a var(--tw-gradient-to-position); +} + +.to-teal-600 { + --tw-gradient-to: #0d9488 var(--tw-gradient-to-position); +} + +.to-teal-700 { + --tw-gradient-to: #0f766e var(--tw-gradient-to-position); +} + +.to-transparent { + --tw-gradient-to: transparent var(--tw-gradient-to-position); +} + +.to-untan-cyan { + --tw-gradient-to: #00b4d8 var(--tw-gradient-to-position); +} + +.to-white { + --tw-gradient-to: #fff var(--tw-gradient-to-position); +} + +.object-contain { + -o-object-fit: contain; + object-fit: contain; +} + +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} + +.object-\[center_30\%\] { + -o-object-position: center 30%; + object-position: center 30%; +} + +.object-bottom { + -o-object-position: bottom; + object-position: bottom; +} + +.object-top { + -o-object-position: top; + object-position: top; +} + +.p-0 { + padding: 0px; +} + +.p-0\.5 { + padding: 0.125rem; +} + +.p-1 { + padding: 0.25rem; +} + +.p-1\.5 { + padding: 0.375rem; +} + +.p-10 { + padding: 2.5rem; +} + +.p-12 { + padding: 3rem; +} + +.p-2 { + padding: 0.5rem; +} + +.p-3 { + padding: 0.75rem; +} + +.p-4 { + padding: 1rem; +} + +.p-5 { + padding: 1.25rem; +} + +.p-6 { + padding: 1.5rem; +} + +.p-8 { + padding: 2rem; +} + +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.px-1\.5 { + padding-left: 0.375rem; + padding-right: 0.375rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.py-0 { + padding-top: 0px; + padding-bottom: 0px; +} + +.py-0\.5 { + padding-top: 0.125rem; + padding-bottom: 0.125rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} + +.py-12 { + padding-top: 3rem; + padding-bottom: 3rem; +} + +.py-14 { + padding-top: 3.5rem; + padding-bottom: 3.5rem; +} + +.py-16 { + padding-top: 4rem; + padding-bottom: 4rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.py-2\.5 { + padding-top: 0.625rem; + padding-bottom: 0.625rem; +} + +.py-20 { + padding-top: 5rem; + padding-bottom: 5rem; +} + +.py-24 { + padding-top: 6rem; + padding-bottom: 6rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-3\.5 { + padding-top: 0.875rem; + padding-bottom: 0.875rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.\!pb-12 { + padding-bottom: 3rem !important; +} + +.\!pb-16 { + padding-bottom: 4rem !important; +} + +.pb-0 { + padding-bottom: 0px; +} + +.pb-1 { + padding-bottom: 0.25rem; +} + +.pb-10 { + padding-bottom: 2.5rem; +} + +.pb-12 { + padding-bottom: 3rem; +} + +.pb-16 { + padding-bottom: 4rem; +} + +.pb-2 { + padding-bottom: 0.5rem; +} + +.pb-20 { + padding-bottom: 5rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.pb-4 { + padding-bottom: 1rem; +} + +.pb-5 { + padding-bottom: 1.25rem; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + +.pb-8 { + padding-bottom: 2rem; +} + +.pl-1 { + padding-left: 0.25rem; +} + +.pl-12 { + padding-left: 3rem; +} + +.pl-2 { + padding-left: 0.5rem; +} + +.pl-4 { + padding-left: 1rem; +} + +.pl-5 { + padding-left: 1.25rem; +} + +.pl-8 { + padding-left: 2rem; +} + +.pl-9 { + padding-left: 2.25rem; +} + +.pr-0 { + padding-right: 0px; +} + +.pr-1 { + padding-right: 0.25rem; +} + +.pr-10 { + padding-right: 2.5rem; +} + +.pr-2 { + padding-right: 0.5rem; +} + +.pr-4 { + padding-right: 1rem; +} + +.pr-6 { + padding-right: 1.5rem; +} + +.pt-0 { + padding-top: 0px; +} + +.pt-0\.5 { + padding-top: 0.125rem; +} + +.pt-1 { + padding-top: 0.25rem; +} + +.pt-12 { + padding-top: 3rem; +} + +.pt-16 { + padding-top: 4rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pt-20 { + padding-top: 5rem; +} + +.pt-24 { + padding-top: 6rem; +} + +.pt-3 { + padding-top: 0.75rem; +} + +.pt-4 { + padding-top: 1rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.pt-8 { + padding-top: 2rem; +} + +.pt-\[100px\] { + padding-top: 100px; +} + +.pt-\[88px\] { + padding-top: 88px; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.align-top { + vertical-align: top; +} + +.font-\[\'Roboto_Condensed\'\] { + font-family: 'Roboto Condensed'; +} + +.font-mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +.font-sans { + font-family: "Roboto", sans-serif; +} + +.font-serif { + font-family: "Roboto Condensed", sans-serif; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-5xl { + font-size: 3rem; + line-height: 1; +} + +.text-\[10px\] { + font-size: 10px; +} + +.text-\[11px\] { + font-size: 11px; +} + +.text-\[12px\] { + font-size: 12px; +} + +.text-\[13px\] { + font-size: 13px; +} + +.text-\[15px\] { + font-size: 15px; +} + +.text-\[6px\] { + font-size: 6px; +} + +.text-\[9px\] { + font-size: 9px; +} + +.text-base { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-lg { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-sm { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-xl { + font-size: 1.375rem; + line-height: 1.75rem; +} + +.text-xs { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.font-black { + font-weight: 900; +} + +.font-bold { + font-weight: 700; +} + +.font-extrabold { + font-weight: 800; +} + +.font-light { + font-weight: 300; +} + +.font-medium { + font-weight: 500; +} + +.font-normal { + font-weight: 400; +} + +.font-semibold { + font-weight: 600; +} + +.uppercase { + text-transform: uppercase; +} + +.italic { + font-style: italic; +} + +.leading-5 { + line-height: 1.25rem; +} + +.leading-\[1\.05\] { + line-height: 1.05; +} + +.leading-none { + line-height: 1; +} + +.leading-relaxed { + line-height: 1.625; +} + +.leading-snug { + line-height: 1.375; +} + +.leading-tight { + line-height: 1.25; +} + +.tracking-\[0\.15em\] { + letter-spacing: 0.15em; +} + +.tracking-\[0\.18em\] { + letter-spacing: 0.18em; +} + +.tracking-\[0\.1em\] { + letter-spacing: 0.1em; +} + +.tracking-\[0\.25em\] { + letter-spacing: 0.25em; +} + +.tracking-\[0\.2em\] { + letter-spacing: 0.2em; +} + +.tracking-tight { + letter-spacing: -0.025em; +} + +.tracking-tighter { + letter-spacing: -0.05em; +} + +.tracking-wide { + letter-spacing: 0.025em; +} + +.tracking-wider { + letter-spacing: 0.05em; +} + +.tracking-widest { + letter-spacing: 0.1em; +} + +.text-\[\#003150\] { + --tw-text-opacity: 1; + color: rgb(0 49 80 / var(--tw-text-opacity, 1)); +} + +.text-\[\#005eb8\] { + --tw-text-opacity: 1; + color: rgb(0 94 184 / var(--tw-text-opacity, 1)); +} + +.text-\[\#b30000\] { + --tw-text-opacity: 1; + color: rgb(179 0 0 / var(--tw-text-opacity, 1)); +} + +.text-\[\#feb401\] { + --tw-text-opacity: 1; + color: rgb(254 180 1 / var(--tw-text-opacity, 1)); +} + +.text-amber-100 { + --tw-text-opacity: 1; + color: rgb(254 243 199 / var(--tw-text-opacity, 1)); +} + +.text-amber-300 { + --tw-text-opacity: 1; + color: rgb(252 211 77 / var(--tw-text-opacity, 1)); +} + +.text-amber-500 { + --tw-text-opacity: 1; + color: rgb(245 158 11 / var(--tw-text-opacity, 1)); +} + +.text-amber-600 { + --tw-text-opacity: 1; + color: rgb(217 119 6 / var(--tw-text-opacity, 1)); +} + +.text-amber-800 { + --tw-text-opacity: 1; + color: rgb(146 64 14 / var(--tw-text-opacity, 1)); +} + +.text-amber-900 { + --tw-text-opacity: 1; + color: rgb(120 53 15 / var(--tw-text-opacity, 1)); +} + +.text-blue-100 { + --tw-text-opacity: 1; + color: rgb(219 234 254 / var(--tw-text-opacity, 1)); +} + +.text-blue-400 { + --tw-text-opacity: 1; + color: rgb(96 165 250 / var(--tw-text-opacity, 1)); +} + +.text-blue-500 { + --tw-text-opacity: 1; + color: rgb(59 130 246 / var(--tw-text-opacity, 1)); +} + +.text-blue-600 { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity, 1)); +} + +.text-blue-700 { + --tw-text-opacity: 1; + color: rgb(29 78 216 / var(--tw-text-opacity, 1)); +} + +.text-cyan-100 { + --tw-text-opacity: 1; + color: rgb(207 250 254 / var(--tw-text-opacity, 1)); +} + +.text-cyan-600 { + --tw-text-opacity: 1; + color: rgb(8 145 178 / var(--tw-text-opacity, 1)); +} + +.text-emerald-100 { + --tw-text-opacity: 1; + color: rgb(209 250 229 / var(--tw-text-opacity, 1)); +} + +.text-emerald-400 { + --tw-text-opacity: 1; + color: rgb(52 211 153 / var(--tw-text-opacity, 1)); +} + +.text-emerald-500 { + --tw-text-opacity: 1; + color: rgb(16 185 129 / var(--tw-text-opacity, 1)); +} + +.text-emerald-600 { + --tw-text-opacity: 1; + color: rgb(5 150 105 / var(--tw-text-opacity, 1)); +} + +.text-emerald-700 { + --tw-text-opacity: 1; + color: rgb(4 120 87 / var(--tw-text-opacity, 1)); +} + +.text-green-500 { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity, 1)); +} + +.text-green-600 { + --tw-text-opacity: 1; + color: rgb(22 163 74 / var(--tw-text-opacity, 1)); +} + +.text-indigo-400 { + --tw-text-opacity: 1; + color: rgb(129 140 248 / var(--tw-text-opacity, 1)); +} + +.text-indigo-600 { + --tw-text-opacity: 1; + color: rgb(79 70 229 / var(--tw-text-opacity, 1)); +} + +.text-orange-600 { + --tw-text-opacity: 1; + color: rgb(234 88 12 / var(--tw-text-opacity, 1)); +} + +.text-pink-500 { + --tw-text-opacity: 1; + color: rgb(236 72 153 / var(--tw-text-opacity, 1)); +} + +.text-pink-600 { + --tw-text-opacity: 1; + color: rgb(219 39 119 / var(--tw-text-opacity, 1)); +} + +.text-purple-600 { + --tw-text-opacity: 1; + color: rgb(147 51 234 / var(--tw-text-opacity, 1)); +} + +.text-red-400 { + --tw-text-opacity: 1; + color: rgb(248 113 113 / var(--tw-text-opacity, 1)); +} + +.text-red-500 { + --tw-text-opacity: 1; + color: rgb(239 68 68 / var(--tw-text-opacity, 1)); +} + +.text-red-600 { + --tw-text-opacity: 1; + color: rgb(220 38 38 / var(--tw-text-opacity, 1)); +} + +.text-red-700 { + --tw-text-opacity: 1; + color: rgb(185 28 28 / var(--tw-text-opacity, 1)); +} + +.text-red-800 { + --tw-text-opacity: 1; + color: rgb(153 27 27 / var(--tw-text-opacity, 1)); +} + +.text-rose-100 { + --tw-text-opacity: 1; + color: rgb(255 228 230 / var(--tw-text-opacity, 1)); +} + +.text-rose-500 { + --tw-text-opacity: 1; + color: rgb(244 63 94 / var(--tw-text-opacity, 1)); +} + +.text-rose-600 { + --tw-text-opacity: 1; + color: rgb(225 29 72 / var(--tw-text-opacity, 1)); +} + +.text-sky-500 { + --tw-text-opacity: 1; + color: rgb(14 165 233 / var(--tw-text-opacity, 1)); +} + +.text-sky-600 { + --tw-text-opacity: 1; + color: rgb(2 132 199 / var(--tw-text-opacity, 1)); +} + +.text-slate-100 { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity, 1)); +} + +.text-slate-200 { + --tw-text-opacity: 1; + color: rgb(226 232 240 / var(--tw-text-opacity, 1)); +} + +.text-slate-300 { + --tw-text-opacity: 1; + color: rgb(203 213 225 / var(--tw-text-opacity, 1)); +} + +.text-slate-400 { + --tw-text-opacity: 1; + color: rgb(148 163 184 / var(--tw-text-opacity, 1)); +} + +.text-slate-500 { + --tw-text-opacity: 1; + color: rgb(100 116 139 / var(--tw-text-opacity, 1)); +} + +.text-slate-600 { + --tw-text-opacity: 1; + color: rgb(71 85 105 / var(--tw-text-opacity, 1)); +} + +.text-slate-700 { + --tw-text-opacity: 1; + color: rgb(51 65 85 / var(--tw-text-opacity, 1)); +} + +.text-slate-800 { + --tw-text-opacity: 1; + color: rgb(30 41 59 / var(--tw-text-opacity, 1)); +} + +.text-slate-900 { + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity, 1)); +} + +.text-teal-600 { + --tw-text-opacity: 1; + color: rgb(13 148 136 / var(--tw-text-opacity, 1)); +} + +.text-untan-blue { + --tw-text-opacity: 1; + color: rgb(0 94 184 / var(--tw-text-opacity, 1)); +} + +.text-untan-cyan { + --tw-text-opacity: 1; + color: rgb(0 180 216 / var(--tw-text-opacity, 1)); +} + +.text-untan-navy { + --tw-text-opacity: 1; + color: rgb(0 49 80 / var(--tw-text-opacity, 1)); +} + +.text-untan-yellow { + --tw-text-opacity: 1; + color: rgb(253 185 19 / var(--tw-text-opacity, 1)); +} + +.text-violet-100 { + --tw-text-opacity: 1; + color: rgb(237 233 254 / var(--tw-text-opacity, 1)); +} + +.text-violet-500 { + --tw-text-opacity: 1; + color: rgb(139 92 246 / var(--tw-text-opacity, 1)); +} + +.text-violet-600 { + --tw-text-opacity: 1; + color: rgb(124 58 237 / var(--tw-text-opacity, 1)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); +} + +.text-white\/40 { + color: rgb(255 255 255 / 0.4); +} + +.text-white\/50 { + color: rgb(255 255 255 / 0.5); +} + +.text-white\/60 { + color: rgb(255 255 255 / 0.6); +} + +.text-white\/75 { + color: rgb(255 255 255 / 0.75); +} + +.text-white\/80 { + color: rgb(255 255 255 / 0.8); +} + +.text-white\/90 { + color: rgb(255 255 255 / 0.9); +} + +.text-yellow-600 { + --tw-text-opacity: 1; + color: rgb(202 138 4 / var(--tw-text-opacity, 1)); +} + +.underline { + text-decoration-line: underline; +} + +.decoration-blue-500\/50 { + text-decoration-color: rgb(59 130 246 / 0.5); +} + +.underline-offset-4 { + text-underline-offset: 4px; +} + +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.placeholder-slate-400::-moz-placeholder { + --tw-placeholder-opacity: 1; + color: rgb(148 163 184 / var(--tw-placeholder-opacity, 1)); +} + +.placeholder-slate-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(148 163 184 / var(--tw-placeholder-opacity, 1)); +} + +.opacity-0 { + opacity: 0; +} + +.opacity-10 { + opacity: 0.1; +} + +.opacity-100 { + opacity: 1; +} + +.opacity-25 { + opacity: 0.25; +} + +.opacity-40 { + opacity: 0.4; +} + +.opacity-50 { + opacity: 0.5; +} + +.opacity-60 { + opacity: 0.6; +} + +.opacity-70 { + opacity: 0.7; +} + +.opacity-75 { + opacity: 0.75; +} + +.opacity-80 { + opacity: 0.8; +} + +.opacity-90 { + opacity: 0.9; +} + +.opacity-\[0\.02\] { + opacity: 0.02; +} + +.opacity-\[0\.03\] { + opacity: 0.03; +} + +.opacity-\[0\.4\] { + opacity: 0.4; +} + +.shadow-2xl { + --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); + --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-\[0_0_30px_rgba\(0\2c 180\2c 216\2c 0\.3\)\] { + --tw-shadow: 0 0 30px rgba(0,180,216,0.3); + --tw-shadow-colored: 0 0 30px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-\[0_8px_30px_rgb\(0\2c 0\2c 0\2c 0\.12\)\] { + --tw-shadow: 0 8px 30px rgb(0,0,0,0.12); + --tw-shadow-colored: 0 8px 30px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-md { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-xl { + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-blue-200 { + --tw-shadow-color: #bfdbfe; + --tw-shadow: var(--tw-shadow-colored); +} + +.outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.outline { + outline-style: solid; +} + +.ring-1 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.ring-red-300 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1)); +} + +.blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.blur-3xl { + --tw-blur: blur(64px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.brightness-0 { + --tw-brightness: brightness(0); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.drop-shadow-\[0_0_8px_rgba\(255\2c 255\2c 255\2c 0\.3\)\] { + --tw-drop-shadow: drop-shadow(0 0 8px rgba(255,255,255,0.3)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.drop-shadow-lg { + --tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.drop-shadow-md { + --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.drop-shadow-sm { + --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.grayscale { + --tw-grayscale: grayscale(100%); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.invert { + --tw-invert: invert(100%); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.filter { + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.backdrop-blur-md { + --tw-backdrop-blur: blur(12px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +.backdrop-blur-sm { + --tw-backdrop-blur: blur(4px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +.transition { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-colors { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-opacity { + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-shadow { + transition-property: box-shadow; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-transform { + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.delay-75 { + transition-delay: 75ms; +} + +.duration-200 { + transition-duration: 200ms; +} + +.duration-300 { + transition-duration: 300ms; +} + +.duration-500 { + transition-duration: 500ms; +} + +.duration-700 { + transition-duration: 700ms; +} + +.ease-in-out { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +.will-change-auto { + will-change: auto; +} + +/* Custom Scrollbar */ + +.custom-scrollbar::-webkit-scrollbar { + width: 6px; +} + +.custom-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +.custom-scrollbar::-webkit-scrollbar-thumb { + border-radius: 9999px; + --tw-bg-opacity: 1; + background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1)); +} + +.custom-scrollbar::-webkit-scrollbar-thumb:hover { + --tw-bg-opacity: 1; + background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1)); +} + +/* Hide scrollbar for Chrome, Safari and Opera */ + +/* Hide scrollbar for IE, Edge and Firefox */ + +/* Animations that are hard to do with utilities only */ + +@keyframes float { + 0%, + 100% { + transform: translateY(0px); + } + + 50% { + transform: translateY(-10px); + } +} + +.animate-float { + animation: float 6s ease-in-out infinite; +} + +@keyframes loading { + 0% { + background-position: 200% 0; + } + + 100% { + background-position: -200% 0; + } +} + +.skeleton { + background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%); + background-size: 200% 100%; + animation: loading 1.5s infinite; +} + +/* Swiper Fixes */ + +.hero-swiper .swiper-pagination-bullet { + height: 0.25rem; + width: 30px; + border-radius: 0.125rem; + background-color: rgb(255 255 255 / 0.5); + opacity: 1; + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 300ms; +} + +.hero-swiper .swiper-pagination-bullet-active { + width: 40px; + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +/* High Contrast Override */ + +.high-contrast { + --tw-bg-opacity: 1; + background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); +} + +.high-contrast .glass-panel, +.high-contrast .glass-nav { + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); + --tw-bg-opacity: 1; + background-color: rgb(23 23 23 / var(--tw-bg-opacity, 1)); +} + +.high-contrast .text-gradient { + background-image: none; + --tw-text-opacity: 1; + color: rgb(253 185 19 / var(--tw-text-opacity, 1)); + -webkit-text-fill-color: #fdb913; +} + +.high-contrast a { + --tw-text-opacity: 1; + color: rgb(253 185 19 / var(--tw-text-opacity, 1)); + text-decoration-line: underline; + text-decoration-thickness: 1px; +} + +.selection\:bg-blue-100 *::-moz-selection { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); +} + +.selection\:bg-blue-100 *::selection { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); +} + +.selection\:bg-untan-yellow *::-moz-selection { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.selection\:bg-untan-yellow *::selection { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.selection\:text-black *::-moz-selection { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); +} + +.selection\:text-black *::selection { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); +} + +.selection\:bg-blue-100::-moz-selection { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); +} + +.selection\:bg-blue-100::selection { + --tw-bg-opacity: 1; + background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); +} + +.selection\:bg-untan-yellow::-moz-selection { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.selection\:bg-untan-yellow::selection { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.selection\:text-black::-moz-selection { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); +} + +.selection\:text-black::selection { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); +} + +.placeholder\:text-slate-400::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(148 163 184 / var(--tw-text-opacity, 1)); +} + +.placeholder\:text-slate-400::placeholder { + --tw-text-opacity: 1; + color: rgb(148 163 184 / var(--tw-text-opacity, 1)); +} + +.before\:absolute::before { + content: var(--tw-content); + position: absolute; +} + +.before\:inset-0::before { + content: var(--tw-content); + inset: 0px; +} + +.before\:bg-untan-navy\/90::before { + content: var(--tw-content); + background-color: rgb(0 49 80 / 0.9); +} + +.hover\:-translate-y-1:hover { + --tw-translate-y: -0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:translate-x-1:hover { + --tw-translate-x: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:scale-110:hover { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:scale-\[1\.02\]:hover { + --tw-scale-x: 1.02; + --tw-scale-y: 1.02; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:gap-3:hover { + gap: 0.75rem; +} + +.hover\:border-\[\#003150\]:hover { + --tw-border-opacity: 1; + border-color: rgb(0 49 80 / var(--tw-border-opacity, 1)); +} + +.hover\:border-amber-300:hover { + --tw-border-opacity: 1; + border-color: rgb(252 211 77 / var(--tw-border-opacity, 1)); +} + +.hover\:border-blue-200:hover { + --tw-border-opacity: 1; + border-color: rgb(191 219 254 / var(--tw-border-opacity, 1)); +} + +.hover\:border-blue-300:hover { + --tw-border-opacity: 1; + border-color: rgb(147 197 253 / var(--tw-border-opacity, 1)); +} + +.hover\:border-blue-500:hover { + --tw-border-opacity: 1; + border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); +} + +.hover\:border-blue-600:hover { + --tw-border-opacity: 1; + border-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); +} + +.hover\:border-emerald-300:hover { + --tw-border-opacity: 1; + border-color: rgb(110 231 183 / var(--tw-border-opacity, 1)); +} + +.hover\:border-green-300:hover { + --tw-border-opacity: 1; + border-color: rgb(134 239 172 / var(--tw-border-opacity, 1)); +} + +.hover\:border-orange-300:hover { + --tw-border-opacity: 1; + border-color: rgb(253 186 116 / var(--tw-border-opacity, 1)); +} + +.hover\:border-orange-500:hover { + --tw-border-opacity: 1; + border-color: rgb(249 115 22 / var(--tw-border-opacity, 1)); +} + +.hover\:border-purple-300:hover { + --tw-border-opacity: 1; + border-color: rgb(216 180 254 / var(--tw-border-opacity, 1)); +} + +.hover\:border-purple-500:hover { + --tw-border-opacity: 1; + border-color: rgb(168 85 247 / var(--tw-border-opacity, 1)); +} + +.hover\:border-slate-200:hover { + --tw-border-opacity: 1; + border-color: rgb(226 232 240 / var(--tw-border-opacity, 1)); +} + +.hover\:border-slate-300:hover { + --tw-border-opacity: 1; + border-color: rgb(203 213 225 / var(--tw-border-opacity, 1)); +} + +.hover\:border-slate-400:hover { + --tw-border-opacity: 1; + border-color: rgb(148 163 184 / var(--tw-border-opacity, 1)); +} + +.hover\:border-teal-500:hover { + --tw-border-opacity: 1; + border-color: rgb(20 184 166 / var(--tw-border-opacity, 1)); +} + +.hover\:border-untan-blue:hover { + --tw-border-opacity: 1; + border-color: rgb(0 94 184 / var(--tw-border-opacity, 1)); +} + +.hover\:border-untan-cyan:hover { + --tw-border-opacity: 1; + border-color: rgb(0 180 216 / var(--tw-border-opacity, 1)); +} + +.hover\:border-white:hover { + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); +} + +.hover\:bg-\[\#003150\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(0 49 80 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-\[\#005eb8\]:hover { + --tw-bg-opacity: 1; + background-color: rgb(0 94 184 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-blue-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-blue-50\/30:hover { + background-color: rgb(239 246 255 / 0.3); +} + +.hover\:bg-blue-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-blue-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-blue-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(30 64 175 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-emerald-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-orange-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-red-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-red-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-red-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-rose-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-slate-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-slate-200:hover { + --tw-bg-opacity: 1; + background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-slate-300:hover { + --tw-bg-opacity: 1; + background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-slate-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-slate-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-untan-blue:hover { + --tw-bg-opacity: 1; + background-color: rgb(0 94 184 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-untan-cyan:hover { + --tw-bg-opacity: 1; + background-color: rgb(0 180 216 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-untan-light:hover { + --tw-bg-opacity: 1; + background-color: rgb(238 246 255 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-untan-navy:hover { + --tw-bg-opacity: 1; + background-color: rgb(0 49 80 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-untan-yellow:hover { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); +} + +.hover\:bg-white\/10:hover { + background-color: rgb(255 255 255 / 0.1); +} + +.hover\:bg-white\/20:hover { + background-color: rgb(255 255 255 / 0.2); +} + +.hover\:bg-white\/50:hover { + background-color: rgb(255 255 255 / 0.5); +} + +.hover\:bg-white\/60:hover { + background-color: rgb(255 255 255 / 0.6); +} + +.hover\:bg-yellow-400:hover { + --tw-bg-opacity: 1; + background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1)); +} + +.hover\:from-indigo-700:hover { + --tw-gradient-from: #4338ca var(--tw-gradient-from-position); + --tw-gradient-to: rgb(67 56 202 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:to-blue-700:hover { + --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position); +} + +.hover\:font-bold:hover { + font-weight: 700; +} + +.hover\:text-\[\#003150\]:hover { + --tw-text-opacity: 1; + color: rgb(0 49 80 / var(--tw-text-opacity, 1)); +} + +.hover\:text-black:hover { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); +} + +.hover\:text-blue-600:hover { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity, 1)); +} + +.hover\:text-red-600:hover { + --tw-text-opacity: 1; + color: rgb(220 38 38 / var(--tw-text-opacity, 1)); +} + +.hover\:text-slate-600:hover { + --tw-text-opacity: 1; + color: rgb(71 85 105 / var(--tw-text-opacity, 1)); +} + +.hover\:text-slate-700:hover { + --tw-text-opacity: 1; + color: rgb(51 65 85 / var(--tw-text-opacity, 1)); +} + +.hover\:text-slate-900:hover { + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity, 1)); +} + +.hover\:text-untan-blue:hover { + --tw-text-opacity: 1; + color: rgb(0 94 184 / var(--tw-text-opacity, 1)); +} + +.hover\:text-untan-navy:hover { + --tw-text-opacity: 1; + color: rgb(0 49 80 / var(--tw-text-opacity, 1)); +} + +.hover\:text-untan-yellow:hover { + --tw-text-opacity: 1; + color: rgb(253 185 19 / var(--tw-text-opacity, 1)); +} + +.hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); +} + +.hover\:underline:hover { + text-decoration-line: underline; +} + +.hover\:shadow-lg:hover { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.hover\:shadow-md:hover { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.hover\:shadow-sm:hover { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.hover\:shadow-xl:hover { + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.focus\:border-blue-400:focus { + --tw-border-opacity: 1; + border-color: rgb(96 165 250 / var(--tw-border-opacity, 1)); +} + +.focus\:border-transparent:focus { + border-color: transparent; +} + +.focus\:border-untan-cyan:focus { + --tw-border-opacity: 1; + border-color: rgb(0 180 216 / var(--tw-border-opacity, 1)); +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:ring-2:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-untan-blue:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(0 94 184 / var(--tw-ring-opacity, 1)); +} + +.focus\:ring-untan-cyan:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(0 180 216 / var(--tw-ring-opacity, 1)); +} + +.focus\:ring-white\/50:focus { + --tw-ring-color: rgb(255 255 255 / 0.5); +} + +.focus\:ring-offset-2:focus { + --tw-ring-offset-width: 2px; +} + +.disabled\:cursor-not-allowed:disabled { + cursor: not-allowed; +} + +.disabled\:opacity-60:disabled { + opacity: 0.6; +} + +.group\/sub:hover .group-hover\/sub\:visible { + visibility: visible; +} + +.group:hover .group-hover\:visible { + visibility: visible; +} + +.group\/sub:hover .group-hover\/sub\:translate-x-0 { + --tw-translate-x: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:translate-x-1 { + --tw-translate-x: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:translate-y-0 { + --tw-translate-y: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:rotate-180 { + --tw-rotate: 180deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:rotate-3 { + --tw-rotate: 3deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:scale-100 { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:scale-105 { + --tw-scale-x: 1.05; + --tw-scale-y: 1.05; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:scale-110 { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:gap-2 { + gap: 0.5rem; +} + +.group:hover .group-hover\:gap-3 { + gap: 0.75rem; +} + +.group:hover .group-hover\:border-\[\#b30000\] { + --tw-border-opacity: 1; + border-color: rgb(179 0 0 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:border-slate-800 { + --tw-border-opacity: 1; + border-color: rgb(30 41 59 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:border-untan-blue { + --tw-border-opacity: 1; + border-color: rgb(0 94 184 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:border-untan-cyan { + --tw-border-opacity: 1; + border-color: rgb(0 180 216 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:border-untan-navy { + --tw-border-opacity: 1; + border-color: rgb(0 49 80 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:border-untan-yellow { + --tw-border-opacity: 1; + border-color: rgb(253 185 19 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:border-white { + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); +} + +.group:hover .group-hover\:bg-\[\#b30000\] { + --tw-bg-opacity: 1; + background-color: rgb(179 0 0 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-amber-600 { + --tw-bg-opacity: 1; + background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-cyan-600 { + --tw-bg-opacity: 1; + background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-emerald-600 { + --tw-bg-opacity: 1; + background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-green-600 { + --tw-bg-opacity: 1; + background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-indigo-600 { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-orange-500 { + --tw-bg-opacity: 1; + background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-orange-600 { + --tw-bg-opacity: 1; + background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-pink-600 { + --tw-bg-opacity: 1; + background-color: rgb(219 39 119 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-purple-500 { + --tw-bg-opacity: 1; + background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-red-600 { + --tw-bg-opacity: 1; + background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-rose-600 { + --tw-bg-opacity: 1; + background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-sky-600 { + --tw-bg-opacity: 1; + background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-slate-800 { + --tw-bg-opacity: 1; + background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-teal-500 { + --tw-bg-opacity: 1; + background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-teal-600 { + --tw-bg-opacity: 1; + background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-untan-blue { + --tw-bg-opacity: 1; + background-color: rgb(0 94 184 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-untan-cyan { + --tw-bg-opacity: 1; + background-color: rgb(0 180 216 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-untan-navy { + --tw-bg-opacity: 1; + background-color: rgb(0 49 80 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-untan-yellow { + --tw-bg-opacity: 1; + background-color: rgb(253 185 19 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-violet-600 { + --tw-bg-opacity: 1; + background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:bg-yellow-600 { + --tw-bg-opacity: 1; + background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1)); +} + +.group:hover .group-hover\:text-\[\#b30000\] { + --tw-text-opacity: 1; + color: rgb(179 0 0 / var(--tw-text-opacity, 1)); +} + +.group:hover .group-hover\:text-slate-800 { + --tw-text-opacity: 1; + color: rgb(30 41 59 / var(--tw-text-opacity, 1)); +} + +.group:hover .group-hover\:text-untan-blue { + --tw-text-opacity: 1; + color: rgb(0 94 184 / var(--tw-text-opacity, 1)); +} + +.group:hover .group-hover\:text-untan-cyan { + --tw-text-opacity: 1; + color: rgb(0 180 216 / var(--tw-text-opacity, 1)); +} + +.group:hover .group-hover\:text-untan-navy { + --tw-text-opacity: 1; + color: rgb(0 49 80 / var(--tw-text-opacity, 1)); +} + +.group:hover .group-hover\:text-untan-yellow { + --tw-text-opacity: 1; + color: rgb(253 185 19 / var(--tw-text-opacity, 1)); +} + +.group:hover .group-hover\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); +} + +.group\/sub:hover .group-hover\/sub\:opacity-100 { + opacity: 1; +} + +.group:hover .group-hover\:opacity-100 { + opacity: 1; +} + +.group:hover .group-hover\:opacity-40 { + opacity: 0.4; +} + +.group:hover .group-hover\:opacity-80 { + opacity: 0.8; +} + +.group:hover .group-hover\:grayscale-0 { + --tw-grayscale: grayscale(0); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +@media (min-width: 640px) { + .sm\:right-3 { + right: 0.75rem; + } + + .sm\:col-span-2 { + grid-column: span 2 / span 2; + } + + .sm\:mr-0 { + margin-right: 0px; + } + + .sm\:block { + display: block; + } + + .sm\:inline { + display: inline; + } + + .sm\:flex { + display: flex; + } + + .sm\:inline-flex { + display: inline-flex; + } + + .sm\:hidden { + display: none; + } + + .sm\:aspect-auto { + aspect-ratio: auto; + } + + .sm\:h-12 { + height: 3rem; + } + + .sm\:h-20 { + height: 5rem; + } + + .sm\:w-1\/2 { + width: 50%; + } + + .sm\:w-64 { + width: 16rem; + } + + .sm\:w-96 { + width: 24rem; + } + + .sm\:w-\[45vw\] { + width: 45vw; + } + + .sm\:w-auto { + width: auto; + } + + .sm\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .sm\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .sm\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .sm\:flex-row { + flex-direction: row; + } + + .sm\:items-start { + align-items: flex-start; + } + + .sm\:items-center { + align-items: center; + } + + .sm\:justify-between { + justify-content: space-between; + } + + .sm\:gap-2 { + gap: 0.5rem; + } + + .sm\:gap-6 { + gap: 1.5rem; + } + + .sm\:overflow-visible { + overflow: visible; + } + + .sm\:rounded-sm { + border-radius: 0.125rem; + } + + .sm\:border { + border-width: 1px; + } + + .sm\:border-b-0 { + border-bottom-width: 0px; + } + + .sm\:border-l { + border-left-width: 1px; + } + + .sm\:border-l-2 { + border-left-width: 2px; + } + + .sm\:border-t-0 { + border-top-width: 0px; + } + + .sm\:border-none { + border-style: none; + } + + .sm\:border-slate-200 { + --tw-border-opacity: 1; + border-color: rgb(226 232 240 / var(--tw-border-opacity, 1)); + } + + .sm\:bg-transparent { + background-color: transparent; + } + + .sm\:bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); + } + + .sm\:p-8 { + padding: 2rem; + } + + .sm\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .sm\:py-16 { + padding-top: 4rem; + padding-bottom: 4rem; + } + + .sm\:py-20 { + padding-top: 5rem; + padding-bottom: 5rem; + } + + .sm\:pl-5 { + padding-left: 1.25rem; + } + + .sm\:pl-6 { + padding-left: 1.5rem; + } + + .sm\:pt-0 { + padding-top: 0px; + } + + .sm\:text-left { + text-align: left; + } + + .sm\:text-2xl { + font-size: 1.5rem; + line-height: 2rem; + } + + .sm\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .sm\:text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; + } + + .sm\:text-base { + font-size: 1.125rem; + line-height: 1.75rem; + } + + .sm\:text-lg { + font-size: 1.25rem; + line-height: 1.75rem; + } + + .sm\:text-sm { + font-size: 1rem; + line-height: 1.5rem; + } + + .sm\:text-xl { + font-size: 1.375rem; + line-height: 1.75rem; + } + + .sm\:shadow-none { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .sm\:shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .sm\:hover\:border-slate-300:hover { + --tw-border-opacity: 1; + border-color: rgb(203 213 225 / var(--tw-border-opacity, 1)); + } +} + +@media (min-width: 768px) { + .md\:col-span-2 { + grid-column: span 2 / span 2; + } + + .md\:mb-0 { + margin-bottom: 0px; + } + + .md\:ml-12 { + margin-left: 3rem; + } + + .md\:block { + display: block; + } + + .md\:inline { + display: inline; + } + + .md\:flex { + display: flex; + } + + .md\:inline-flex { + display: inline-flex; + } + + .md\:hidden { + display: none; + } + + .md\:h-20 { + height: 5rem; + } + + .md\:w-1\/2 { + width: 50%; + } + + .md\:w-2\/3 { + width: 66.666667%; + } + + .md\:w-20 { + width: 5rem; + } + + .md\:w-32 { + width: 8rem; + } + + .md\:w-auto { + width: auto; + } + + .md\:max-w-md { + max-width: 28rem; + } + + .md\:flex-shrink-0 { + flex-shrink: 0; + } + + .md\:auto-rows-\[220px\] { + grid-auto-rows: 220px; + } + + .md\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .md\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .md\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .md\:flex-row { + flex-direction: row; + } + + .md\:items-end { + align-items: flex-end; + } + + .md\:items-center { + align-items: center; + } + + .md\:gap-10 { + gap: 2.5rem; + } + + .md\:gap-3 { + gap: 0.75rem; + } + + .md\:gap-5 { + gap: 1.25rem; + } + + .md\:gap-6 { + gap: 1.5rem; + } + + .md\:gap-8 { + gap: 2rem; + } + + .md\:p-6 { + padding: 1.5rem; + } + + .md\:p-8 { + padding: 2rem; + } + + .md\:py-12 { + padding-top: 3rem; + padding-bottom: 3rem; + } + + .md\:py-14 { + padding-top: 3.5rem; + padding-bottom: 3.5rem; + } + + .md\:py-16 { + padding-top: 4rem; + padding-bottom: 4rem; + } + + .md\:py-20 { + padding-top: 5rem; + padding-bottom: 5rem; + } + + .md\:py-3\.5 { + padding-top: 0.875rem; + padding-bottom: 0.875rem; + } + + .md\:pr-10 { + padding-right: 2.5rem; + } + + .md\:text-center { + text-align: center; + } + + .md\:text-2xl { + font-size: 1.5rem; + line-height: 2rem; + } + + .md\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .md\:text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; + } + + .md\:text-5xl { + font-size: 3rem; + line-height: 1; + } + + .md\:text-8xl { + font-size: 6rem; + line-height: 1; + } + + .md\:text-\[11px\] { + font-size: 11px; + } + + .md\:text-\[12px\] { + font-size: 12px; + } + + .md\:text-\[17px\] { + font-size: 17px; + } + + .md\:text-base { + font-size: 1.125rem; + line-height: 1.75rem; + } + + .md\:text-lg { + font-size: 1.25rem; + line-height: 1.75rem; + } + + .md\:text-sm { + font-size: 1rem; + line-height: 1.5rem; + } + + .md\:text-xl { + font-size: 1.375rem; + line-height: 1.75rem; + } + + .md\:text-xs { + font-size: 0.875rem; + line-height: 1.25rem; + } + + .md\:leading-\[1\.8\] { + line-height: 1.8; + } + + .md\:leading-snug { + line-height: 1.375; + } +} + +@media (min-width: 1024px) { + .lg\:bottom-4 { + bottom: 1rem; + } + + .lg\:bottom-\[72px\] { + bottom: 72px; + } + + .lg\:top-\[185px\] { + top: 185px; + } + + .lg\:top-\[209px\] { + top: 209px; + } + + .lg\:top-\[210px\] { + top: 210px; + } + + .lg\:order-1 { + order: 1; + } + + .lg\:order-2 { + order: 2; + } + + .lg\:col-span-2 { + grid-column: span 2 / span 2; + } + + .lg\:col-span-3 { + grid-column: span 3 / span 3; + } + + .lg\:col-span-4 { + grid-column: span 4 / span 4; + } + + .lg\:col-span-5 { + grid-column: span 5 / span 5; + } + + .lg\:col-span-7 { + grid-column: span 7 / span 7; + } + + .lg\:col-span-8 { + grid-column: span 8 / span 8; + } + + .lg\:mx-0 { + margin-left: 0px; + margin-right: 0px; + } + + .lg\:mb-12 { + margin-bottom: 3rem; + } + + .lg\:block { + display: block; + } + + .lg\:inline-block { + display: inline-block; + } + + .lg\:flex { + display: flex; + } + + .lg\:hidden { + display: none; + } + + .lg\:aspect-auto { + aspect-ratio: auto; + } + + .lg\:h-14 { + height: 3.5rem; + } + + .lg\:h-24 { + height: 6rem; + } + + .lg\:h-\[600px\] { + height: 600px; + } + + .lg\:h-\[calc\(100vh-160px\)\] { + height: calc(100vh - 160px); + } + + .lg\:h-\[calc\(100vh-275px\)\] { + height: calc(100vh - 275px); + } + + .lg\:max-h-\[400px\] { + max-height: 400px; + } + + .lg\:min-h-full { + min-height: 100%; + } + + .lg\:w-14 { + width: 3.5rem; + } + + .lg\:w-24 { + width: 6rem; + } + + .lg\:w-36 { + width: 9rem; + } + + .lg\:w-4\/12 { + width: 33.333333%; + } + + .lg\:w-8\/12 { + width: 66.666667%; + } + + .lg\:w-80 { + width: 20rem; + } + + .lg\:w-auto { + width: auto; + } + + .lg\:grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); + } + + .lg\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .lg\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .lg\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .lg\:grid-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); + } + + .lg\:flex-row { + flex-direction: row; + } + + .lg\:items-center { + align-items: center; + } + + .lg\:justify-end { + justify-content: flex-end; + } + + .lg\:justify-between { + justify-content: space-between; + } + + .lg\:gap-12 { + gap: 3rem; + } + + .lg\:gap-14 { + gap: 3.5rem; + } + + .lg\:gap-8 { + gap: 2rem; + } + + .lg\:gap-y-0 { + row-gap: 0px; + } + + .lg\:border-y { + border-top-width: 1px; + border-bottom-width: 1px; + } + + .lg\:border-b-0 { + border-bottom-width: 0px; + } + + .lg\:border-l { + border-left-width: 1px; + } + + .lg\:border-r { + border-right-width: 1px; + } + + .lg\:border-t-0 { + border-top-width: 0px; + } + + .lg\:p-12 { + padding: 3rem; + } + + .lg\:p-20 { + padding: 5rem; + } + + .lg\:p-8 { + padding: 2rem; + } + + .lg\:px-0 { + padding-left: 0px; + padding-right: 0px; + } + + .lg\:px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; + } + + .lg\:px-8 { + padding-left: 2rem; + padding-right: 2rem; + } + + .lg\:py-14 { + padding-top: 3.5rem; + padding-bottom: 3.5rem; + } + + .lg\:py-16 { + padding-top: 4rem; + padding-bottom: 4rem; + } + + .lg\:py-20 { + padding-top: 5rem; + padding-bottom: 5rem; + } + + .lg\:py-24 { + padding-top: 6rem; + padding-bottom: 6rem; + } + + .lg\:py-4 { + padding-top: 1rem; + padding-bottom: 1rem; + } + + .lg\:py-8 { + padding-top: 2rem; + padding-bottom: 2rem; + } + + .lg\:pb-12 { + padding-bottom: 3rem; + } + + .lg\:pb-36 { + padding-bottom: 9rem; + } + + .lg\:pl-5 { + padding-left: 1.25rem; + } + + .lg\:pl-6 { + padding-left: 1.5rem; + } + + .lg\:pl-8 { + padding-left: 2rem; + } + + .lg\:pr-8 { + padding-right: 2rem; + } + + .lg\:pt-20 { + padding-top: 5rem; + } + + .lg\:pt-\[160px\] { + padding-top: 160px; + } + + .lg\:pt-\[210px\] { + padding-top: 210px; + } + + .lg\:text-2xl { + font-size: 1.5rem; + line-height: 2rem; + } + + .lg\:text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; + } + + .lg\:text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; + } + + .lg\:text-5xl { + font-size: 3rem; + line-height: 1; + } + + .lg\:text-7xl { + font-size: 4.5rem; + line-height: 1; + } + + .lg\:text-\[40px\] { + font-size: 40px; + } + + .lg\:text-\[44px\] { + font-size: 44px; + } + + .lg\:text-base { + font-size: 1.125rem; + line-height: 1.75rem; + } + + .lg\:text-sm { + font-size: 1rem; + line-height: 1.5rem; + } + + .lg\:tracking-\[0\.3em\] { + letter-spacing: 0.3em; + } +} + +@media (min-width: 1280px) { + .xl\:w-1\/4 { + width: 25%; + } + + .xl\:w-3\/4 { + width: 75%; + } + + .xl\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .xl\:gap-14 { + gap: 3.5rem; + } + + .xl\:px-10 { + padding-left: 2.5rem; + padding-right: 2.5rem; + } + + .xl\:pl-10 { + padding-left: 2.5rem; + } +} \ No newline at end of file diff --git a/groups/ACAAB/index.html b/groups/ACAAB/index.html new file mode 100644 index 0000000..a781215 --- /dev/null +++ b/groups/ACAAB/index.html @@ -0,0 +1,1338 @@ + + + + + + Group 06 – ACAAB | Informatika UNTAN + + + + + + + + + + + + + + + +
+
+
+ Tugas Halaman Statis +

Sorotan dan Prestasi Karya Mahasiswa

+

Kelompok 06 — ACAAB  ·  Informatika UNTAN 2026

+
+
+ +

Tulis konten halaman kelompok di sini.

+

Subjudul

+

Gunakan paragraf, list, tabel, gambar, dan elemen konten lainnya.

+ +
+
+
+ +
+
+ +

+ Ikuti Kami

+
+ + + + + + +
+ +
+ Logo UNTAN +
+

INFORMATIKA

+

+ UNIVERSITAS TANJUNGPURA

+
+
+ +
+

+ + Jl. Prof. Dr. H. Hadari Nawawi, Bansir Laut, Kec. Pontianak Tenggara, +

+

Kota Pontianak, Kalimantan Barat 78124

+
+ +
+ E: info@informatika.untan.ac.id + + P: +62 851-7165-5161 + + F: +62(561) 739637 + + WA: +62 851-7165-5161 +
+ +
+ +
+ Footer Illustration +
+
+ + + + + + + + \ No newline at end of file diff --git a/groups/ACAAB/style.css b/groups/ACAAB/style.css new file mode 100644 index 0000000..2bc5542 --- /dev/null +++ b/groups/ACAAB/style.css @@ -0,0 +1,48 @@ +:root { + --brand-navy: #003150; + --brand-yellow: #feb401; + --text-main: #1e293b; + --text-soft: #64748b; + --bg-soft: #f8fafc; + --line: #e2e8f0; +} + +* { box-sizing: border-box; } +html, body { margin: 0; padding: 0; } +body { font-family: "Roboto", Arial, sans-serif; color: var(--text-main); background: #fff; line-height: 1.6; } +.container { width: min(1100px, 92%); margin-inline: auto; } + +.nav { background: var(--brand-navy); color: #fff; border-bottom: 4px solid var(--brand-yellow); padding: 14px 0; } +.brand { font-size: 1.1rem; font-weight: 700; letter-spacing: .02em; } + +.hero { position: relative; color: #fff; min-height: 220px; display: flex; align-items: flex-end; overflow: hidden; } +.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.45); } +.hero-inner { position: relative; z-index: 1; padding: 36px 0; } +.badge { display: inline-block; background: var(--brand-yellow); color: #111827; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: .2rem .45rem; margin-bottom: 12px; } +.hero h1 { margin: 0; font-size: clamp(1.6rem, 3.2vw, 2.8rem); line-height: 1.2; } + +.layout { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: 2rem 0 4rem; } +@media (min-width: 1024px) { .layout { grid-template-columns: minmax(0, 3fr) minmax(260px, 1fr); } } + +.meta { font-size: .78rem; text-transform: uppercase; color: #475569; display: flex; flex-wrap: wrap; gap: .75rem 1rem; margin-bottom: 1rem; } +.cover { background: var(--bg-soft); border: 1px solid var(--line); margin-bottom: 1.5rem; } +.cover img { width: 100%; height: auto; display: block; } + +.article-body > * + * { margin-top: 1.1em; } +.article-body h2 { font-size: 1.35rem; margin: 1.6em 0 .5em; } +.article-body h3 { font-size: 1.1rem; margin: 1.4em 0 .4em; } +.article-body p { margin: 0 0 1em; } +.article-body ul, .article-body ol { padding-left: 1.4rem; } +.article-body blockquote { border-left: 4px solid #005eb8; background: #eef6ff; padding: .8rem 1rem; color: #334155; } +.article-body a { color: #005eb8; } +.article-body img { max-width: 100%; border-radius: 8px; } +.article-body code { background: #f1f5f9; padding: .1em .35em; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; } + +.note { border: 1px solid var(--line); background: var(--bg-soft); padding: 1rem; } +.note h3 { margin: 0 0 .5rem; font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; color: #475569; } + +.footer { margin-top: 2rem; background: var(--brand-navy); color: #fff; border-top: 4px solid var(--brand-yellow); } +.footer-inner { display: flex; align-items: center; justify-content: center; gap: .75rem; padding: 1rem 0; } +.footer-logo { height: 28px; width: auto; } +.footer-ornament { width: 100%; display: block; opacity: .9; } + diff --git a/groups/ApeNameTeamE/index.html b/groups/ApeNameTeamE/index.html new file mode 100644 index 0000000..d7d58d3 --- /dev/null +++ b/groups/ApeNameTeamE/index.html @@ -0,0 +1,1338 @@ + + + + + + Group 10 – Ape Name Tim E | Informatika UNTAN + + + + + + + + + + + + + + + +
+
+
+ Tugas Halaman Statis +

Beasiswa

+

Kelompok 10 — Ape Name Tim E  ·  Informatika UNTAN 2026

+
+
+ +

Tulis konten halaman kelompok di sini.

+

Subjudul

+

Gunakan paragraf, list, tabel, gambar, dan elemen konten lainnya.

+ +
+
+
+ +
+
+ +

+ Ikuti Kami

+
+ + + + + + +
+ +
+ Logo UNTAN +
+

INFORMATIKA

+

+ UNIVERSITAS TANJUNGPURA

+
+
+ +
+

+ + Jl. Prof. Dr. H. Hadari Nawawi, Bansir Laut, Kec. Pontianak Tenggara, +

+

Kota Pontianak, Kalimantan Barat 78124

+
+ +
+ E: info@informatika.untan.ac.id + + P: +62 851-7165-5161 + + F: +62(561) 739637 + + WA: +62 851-7165-5161 +
+ +
+ +
+ Footer Illustration +
+
+ + + + + + + + \ No newline at end of file diff --git a/groups/ApeNameTeamE/style.css b/groups/ApeNameTeamE/style.css new file mode 100644 index 0000000..2bc5542 --- /dev/null +++ b/groups/ApeNameTeamE/style.css @@ -0,0 +1,48 @@ +:root { + --brand-navy: #003150; + --brand-yellow: #feb401; + --text-main: #1e293b; + --text-soft: #64748b; + --bg-soft: #f8fafc; + --line: #e2e8f0; +} + +* { box-sizing: border-box; } +html, body { margin: 0; padding: 0; } +body { font-family: "Roboto", Arial, sans-serif; color: var(--text-main); background: #fff; line-height: 1.6; } +.container { width: min(1100px, 92%); margin-inline: auto; } + +.nav { background: var(--brand-navy); color: #fff; border-bottom: 4px solid var(--brand-yellow); padding: 14px 0; } +.brand { font-size: 1.1rem; font-weight: 700; letter-spacing: .02em; } + +.hero { position: relative; color: #fff; min-height: 220px; display: flex; align-items: flex-end; overflow: hidden; } +.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.45); } +.hero-inner { position: relative; z-index: 1; padding: 36px 0; } +.badge { display: inline-block; background: var(--brand-yellow); color: #111827; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: .2rem .45rem; margin-bottom: 12px; } +.hero h1 { margin: 0; font-size: clamp(1.6rem, 3.2vw, 2.8rem); line-height: 1.2; } + +.layout { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: 2rem 0 4rem; } +@media (min-width: 1024px) { .layout { grid-template-columns: minmax(0, 3fr) minmax(260px, 1fr); } } + +.meta { font-size: .78rem; text-transform: uppercase; color: #475569; display: flex; flex-wrap: wrap; gap: .75rem 1rem; margin-bottom: 1rem; } +.cover { background: var(--bg-soft); border: 1px solid var(--line); margin-bottom: 1.5rem; } +.cover img { width: 100%; height: auto; display: block; } + +.article-body > * + * { margin-top: 1.1em; } +.article-body h2 { font-size: 1.35rem; margin: 1.6em 0 .5em; } +.article-body h3 { font-size: 1.1rem; margin: 1.4em 0 .4em; } +.article-body p { margin: 0 0 1em; } +.article-body ul, .article-body ol { padding-left: 1.4rem; } +.article-body blockquote { border-left: 4px solid #005eb8; background: #eef6ff; padding: .8rem 1rem; color: #334155; } +.article-body a { color: #005eb8; } +.article-body img { max-width: 100%; border-radius: 8px; } +.article-body code { background: #f1f5f9; padding: .1em .35em; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; } + +.note { border: 1px solid var(--line); background: var(--bg-soft); padding: 1rem; } +.note h3 { margin: 0 0 .5rem; font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; color: #475569; } + +.footer { margin-top: 2rem; background: var(--brand-navy); color: #fff; border-top: 4px solid var(--brand-yellow); } +.footer-inner { display: flex; align-items: center; justify-content: center; gap: .75rem; padding: 1rem 0; } +.footer-logo { height: 28px; width: auto; } +.footer-ornament { width: 100%; display: block; opacity: .9; } + diff --git a/groups/C4A/index.html b/groups/C4A/index.html index 717674b..01a6da5 100644 --- a/groups/C4A/index.html +++ b/groups/C4A/index.html @@ -1,60 +1,1338 @@ - - + + - Group 04 - Tugas Halaman Statis - + Group 04 – C4A | Informatika UNTAN + + + + + + - - + -
- Hero -
- Halaman Statis -

Judul Halaman Group 04

-
-
+ -
-
-
- Kelompok 04 - 2026 +
- - +
-