diff --git a/assets/global/localization.js b/assets/global/localization.js index 82d1ca7..b41b18b 100644 --- a/assets/global/localization.js +++ b/assets/global/localization.js @@ -569,6 +569,78 @@ const translations = { 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.", + + grp_limaem_hero_badge: "KOMUNITAS & KEPEMIMPINAN", + grp_limaem_hero_title: "Kehidupan Mahasiswa & Himpunan (HMIF)", + grp_limaem_hero_desc: "Membangun ekosistem kolaboratif di mana teknologi bertemu dengan kreativitas, membentuk calon pemimpin industri masa depan.", + grp_limaem_hero_btn: "Lihat Struktur Kepengurusan", + + grp_limaem_about_title: "Ruang Tumbuh Bagi Mahasiswa Informatika", + grp_limaem_about_p1: "Himpunan Mahasiswa Informatika (HMIF) Universitas Tanjungpura bukan sekadar organisasi, melainkan rumah bagi para pemimpin teknologi. Kami percaya bahwa pendidikan formal adalah fondasi, namun komunitas adalah akselerator.", + grp_limaem_about_p2: "Melalui berbagai inisiatif, kami menjembatani kesenjangan antara kurikulum akademik dan kebutuhan industri, sambil tetap menjaga semangat kekeluargaan dan integritas ilmiah.", + grp_limaem_about_stat_students: "Mahasiswa Aktif", + grp_limaem_about_stat_partners: "MITRA", + grp_limaem_about_badge: "Inklusivitas & Kolaborasi", + + grp_limaem_partners_title: "Partner dan Kolaborator", + + grp_limaem_divisi_title: "Divisi Kepengurusan HMIF", + grp_limaem_divisi_desc: "Struktur organisasi yang dirancang untuk efisiensi dan pengembangan kapasitas anggota di berbagai bidang strategis.", + grp_limaem_divisi_b1_label: "Bidang 1", + grp_limaem_divisi_b1_title: "Pengembangan Sumber Daya Mahasiswa dan Kaderisasi", + grp_limaem_divisi_b1_desc: "Divisi ini menyelenggarakan kaderisasi terstruktur, mentoring berkala, dan pelatihan kepemimpinan serta soft-skill. Program kerja mencakup onboarding anggota baru, workshop kepemimpinan, proyek kolaboratif, dan kegiatan pengabdian yang melatih tanggung jawab sosial. Fokusnya adalah menyiapkan kader yang kompeten dan menjaga regenerasi organisasi.", + grp_limaem_divisi_b2_label: "Bidang 2", + grp_limaem_divisi_b2_title: "Media Komunikasi dan Konten Digital", + grp_limaem_divisi_b2_desc: "Divisi ini mengelola strategi komunikasi dan produksi konten HMIF, termasuk perencanaan editorial, manajemen media sosial, serta dokumentasi acara. Program kerjanya meliputi pembuatan materi promosi, publikasi kegiatan, dan penguatan identitas digital agar informasi organisasi tersampaikan konsisten dan menarik.", + grp_limaem_divisi_b3_label: "Bidang 3", + grp_limaem_divisi_b3_title: "Inovasi dan Kompetisi Teknologi", + grp_limaem_divisi_b3_desc: "Divisi ini memfasilitasi persiapan lomba dan pengembangan proyek teknis melalui coaching clinic, bootcamp berbasis proyek, serta study club untuk Competitive Programming, Software Development, dan Data/ML. Kegiatan termasuk seleksi internal, bimbingan kompetitif, dan inisiatif digitalisasi seperti pengembangan website dan dashboard untuk mendukung ekosistem inovasi HMIF.", + grp_limaem_divisi_b4_label: "Bidang 4", + grp_limaem_divisi_b4_title: "Pengembangan Organisasi", + grp_limaem_divisi_b4_desc: "Divisi ini memperkuat tata kelola dan kapabilitas internal melalui pelatihan pengurus, penyusunan SOP sederhana, dan evaluasi proses kerja. Program kerjanya mencakup pengembangan budaya organisasi, peningkatan efektivitas koordinasi, dan kegiatan peningkatan profesionalisme sehingga operasi HMIF menjadi lebih terstruktur dan efisien.", + grp_limaem_divisi_b5_label: "Bidang 5", + grp_limaem_divisi_b5_title: "Sosial Masyarakat", + grp_limaem_divisi_b5_desc: "Divisi ini merancang dan melaksanakan program pengabdian serta aksi sosial yang berdampak, termasuk pendampingan komunitas dan bantuan kemanusiaan. Kegiatan meliputi identifikasi kebutuhan lapangan, pelaksanaan terstruktur, dan evaluasi dampak untuk memastikan keberlanjutan dan manfaat nyata bagi masyarakat.", + grp_limaem_divisi_b6_label: "Bidang 6", + grp_limaem_divisi_b6_title: "Kewirausahaan dan Kemitraan", + grp_limaem_divisi_b6_desc: "Divisi ini mengembangkan unit usaha organisasi, merancang skema pendanaan kreatif, dan menjalin kemitraan strategis untuk mendukung keberlanjutan program HMIF. Unit kerjanya meliputi riset peluang usaha, penyusunan proposal kemitraan, dan pengelolaan sponsor untuk meningkatkan kemandirian finansial dan akses jaringan profesional.", + + grp_limaem_kegiatan_title: "Kegiatan Unggulan", + grp_limaem_kegiatan_subtitle: "Kegiatan tahunan yang menjadi ikon Informatika UNTAN.", + grp_limaem_kegiatan_c1_title: "Silaturahmi Keluarga Besar Informatika", + grp_limaem_kegiatan_c1_desc: "Kegiatan buka bersama seluruh keluarga Informatika Untan yang selalu diadakan setiap tahunnya.", + grp_limaem_kegiatan_c2_title: "GEMASTIK", + grp_limaem_kegiatan_c2_desc: "Ajang kompetisi IT bergengsi tingkat nasional tahunan dari kementerian. Wadah bagi mahasiswa Informatika UNTAN untuk unjuk gigi di bidang programming, cyber security, data mining, hingga UI/UX.", + grp_limaem_kegiatan_c3_title: "Perayaan 17 Agustus", + grp_limaem_kegiatan_c3_desc: "Momen perayaan Hari Kemerdekaan Indonesia yang diisi dengan berbagai perlombaan menarik. Ajang seru-seruan bersama untuk mempererat rasa nasionalisme dan kekeluargaan mahasiswa Informatika.", + grp_limaem_kegiatan_c4_title: "Bootcamp HMIF", + grp_limaem_kegiatan_c4_desc: "Program intensif pengembangan skill teknis mahasiswa Informatika bersama mentor profesional dari industri.", + grp_limaem_kegiatan_c5_title: "UPC", + grp_limaem_kegiatan_c5_desc: "Kompetisi Pemograman untuk mengasah skill coding mahasiswa Informatika.", + grp_limaem_kegiatan_c6_title: "Study Excursion", + grp_limaem_kegiatan_c6_desc: "Study Excursion menjadi pengalaman berharga bagi mahasiswa semester 5 untuk belajar di luar kampus, memperluas wawasan, mengenal suasana baru, serta menciptakan kenangan berkesan bersama selama perjalanan.", + grp_limaem_kegiatan_c7_title: "INFORMERS", + grp_limaem_kegiatan_c7_desc: "Perayaan ulang tahun Informatika UNTAN, momen kebersamaan dan kebanggaan seluruh keluarga besar Informatika.", + + grp_limaem_sc_title: "STUDY CLUB", + grp_limaem_sc_arise_title: "ARISE", + grp_limaem_sc_arise_desc: "Belajar logika dan algoritma bersama, di mana kalian bisa berkembang dan membuka peluang mengikuti kompetisi pemrograman di berbagai level.", + grp_limaem_sc_minerva_title: "MINERVA", + grp_limaem_sc_minerva_desc: "Gali potensi tersembunyi dari tumpukan data! Di sini kita akan bereksplorasi dengan algoritma Machine Learning, membedah teknik klasifikasi, hingga melatih model prediktif untuk menghasilkan insight yang bermakna.", + grp_limaem_sc_sd_title: "Software Development (Segera Hadir)", + grp_limaem_sc_sd_desc: "Wujudkan idemu jadi produk digital yang nyata! Kita akan ngoding bareng dari merancang frontend yang interaktif, membangun backend yang tangguh, serta mengintegrasikan berbagai API untuk menciptakan aplikasi web masa kini.", + + grp_limaem_galeri_title: "Galeri Keseruan", + + grp_limaem_cta_title: "Ada yang Ingin Ditanyakan Seputar HMIF?", + grp_limaem_cta_desc: "Bergabunglah dengan HMIF untuk memperluas jaringan, mengasah skill, dan menciptakan dampak nyata.", + grp_limaem_cta_btn: "Hubungi Kami", + grp_limaem_cta_info1_label: "Sekretariat", + grp_limaem_cta_info1_val: "Gedung Fakultas Teknik Lt. 2, Jl. Prof. Dr. H. Hadari Nawawi", + grp_limaem_cta_info2_label: "Jam Operasional", + grp_limaem_cta_info2_val: "Senin - Jumat, 08:00 - 17:00 WIB", + grp_limaem_cta_info3_label: "Media Sosial", + grp_limaem_cta_info3_val: "@hmif.untan, YouTube: HMIF UNTAN TV", }, en: { @@ -1135,6 +1207,78 @@ const translations = { 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.", + + grp_limaem_hero_badge: "COMMUNITY & LEADERSHIP", + grp_limaem_hero_title: "Student Life & Student Association (HMIF)", + grp_limaem_hero_desc: "Building a collaborative ecosystem where technology meets creativity, shaping the industry leaders of tomorrow.", + grp_limaem_hero_btn: "View Organizational Structure", + + grp_limaem_about_title: "A Space to Grow for Informatics Students", + grp_limaem_about_p1: "The Informatics Student Association (HMIF) of Tanjungpura University is more than just an organization — it is a home for technology leaders. We believe that formal education is the foundation, but community is the accelerator.", + grp_limaem_about_p2: "Through various initiatives, we bridge the gap between academic curriculum and industry needs, while maintaining the spirit of kinship and academic integrity.", + grp_limaem_about_stat_students: "Active Students", + grp_limaem_about_stat_partners: "PARTNERS", + grp_limaem_about_badge: "Inclusivity & Collaboration", + + grp_limaem_partners_title: "Partners and Collaborators", + + grp_limaem_divisi_title: "HMIF Organizational Divisions", + grp_limaem_divisi_desc: "An organizational structure designed for efficiency and capacity building across various strategic fields.", + grp_limaem_divisi_b1_label: "Division 1", + grp_limaem_divisi_b1_title: "Student Development and Cadre Regeneration", + grp_limaem_divisi_b1_desc: "This division organizes structured cadre programs, regular mentoring, and leadership and soft-skill training. Its activities include new member onboarding, leadership workshops, collaborative projects, and community service that fosters social responsibility. The focus is on preparing competent cadres and sustaining organizational regeneration.", + grp_limaem_divisi_b2_label: "Division 2", + grp_limaem_divisi_b2_title: "Communication Media and Digital Content", + grp_limaem_divisi_b2_desc: "This division manages HMIF's communication strategy and content production, including editorial planning, social media management, and event documentation. Its work programs include creating promotional materials, publishing activities, and strengthening digital identity to deliver consistent and engaging organizational information.", + grp_limaem_divisi_b3_label: "Division 3", + grp_limaem_divisi_b3_title: "Innovation and Technology Competition", + grp_limaem_divisi_b3_desc: "This division facilitates competition preparation and technical project development through coaching clinics, project-based bootcamps, and study clubs for Competitive Programming, Software Development, and Data/ML. Activities include internal selection, competitive coaching, and digitalization initiatives such as website and dashboard development to support HMIF's innovation ecosystem.", + grp_limaem_divisi_b4_label: "Division 4", + grp_limaem_divisi_b4_title: "Organizational Development", + grp_limaem_divisi_b4_desc: "This division strengthens internal governance and capabilities through board training, simple SOP drafting, and work process evaluation. Its programs include organizational culture development, improved coordination effectiveness, and professionalism initiatives, making HMIF operations more structured and efficient.", + grp_limaem_divisi_b5_label: "Division 5", + grp_limaem_divisi_b5_title: "Community Engagement", + grp_limaem_divisi_b5_desc: "This division designs and implements impactful community service programs and social actions, including community assistance and humanitarian aid. Activities cover field needs assessment, structured implementation, and impact evaluation to ensure sustainability and tangible benefits for the community.", + grp_limaem_divisi_b6_label: "Division 6", + grp_limaem_divisi_b6_title: "Entrepreneurship and Partnerships", + grp_limaem_divisi_b6_desc: "This division develops organizational business units, designs creative funding schemes, and establishes strategic partnerships to support the sustainability of HMIF programs. Its work units include business opportunity research, partnership proposal development, and sponsorship management to enhance financial independence and professional networking access.", + + grp_limaem_kegiatan_title: "Flagship Events", + grp_limaem_kegiatan_subtitle: "Annual events that have become icons of Informatics UNTAN.", + grp_limaem_kegiatan_c1_title: "Informatics Family Gathering", + grp_limaem_kegiatan_c1_desc: "An annual iftar gathering held with the entire Informatics UNTAN family, a tradition maintained every year.", + grp_limaem_kegiatan_c2_title: "GEMASTIK", + grp_limaem_kegiatan_c2_desc: "A prestigious national-level IT competition held annually by the Ministry. A platform for Informatics UNTAN students to showcase their skills in programming, cyber security, data mining, and UI/UX.", + grp_limaem_kegiatan_c3_title: "Independence Day Celebration", + grp_limaem_kegiatan_c3_desc: "A celebration of Indonesian Independence Day filled with exciting competitions. A fun event to strengthen nationalism and the sense of kinship among Informatics students.", + grp_limaem_kegiatan_c4_title: "HMIF Bootcamp", + grp_limaem_kegiatan_c4_desc: "An intensive technical skill development program for Informatics students, guided by professional mentors from the industry.", + grp_limaem_kegiatan_c5_title: "UPC", + grp_limaem_kegiatan_c5_desc: "A Programming Competition to sharpen the coding skills of Informatics students.", + grp_limaem_kegiatan_c6_title: "Study Excursion", + grp_limaem_kegiatan_c6_desc: "Study Excursion is a valuable experience for 5th semester students to study outside the campus, broaden their horizons, get to know new atmospheres, and create memorable memories together during the trip.", + grp_limaem_kegiatan_c7_title: "INFORMERS", + grp_limaem_kegiatan_c7_desc: "The anniversary celebration of Informatics UNTAN, a moment of togetherness and pride for the entire Informatics family.", + + grp_limaem_sc_title: "STUDY CLUBS", + grp_limaem_sc_arise_title: "ARISE", + grp_limaem_sc_arise_desc: "Learn logic and algorithms together, where you can grow and open opportunities to participate in programming competitions at various levels.", + grp_limaem_sc_minerva_title: "MINERVA", + grp_limaem_sc_minerva_desc: "Uncover hidden potential from mountains of data! Here we explore Machine Learning algorithms, dissect classification techniques, and train predictive models to generate meaningful insights.", + grp_limaem_sc_sd_title: "Software Development (Coming Soon)", + grp_limaem_sc_sd_desc: "Turn your ideas into real digital products! We will code together — from designing interactive frontends and building robust backends, to integrating various APIs to create modern web applications.", + + grp_limaem_galeri_title: "Fun Gallery", + + grp_limaem_cta_title: "Have Questions About HMIF?", + grp_limaem_cta_desc: "Join HMIF to expand your network, sharpen your skills, and create real impact.", + grp_limaem_cta_btn: "Contact Us", + grp_limaem_cta_info1_label: "Secretariat", + grp_limaem_cta_info1_val: "Engineering Faculty Building, 2nd Floor, Jl. Prof. Dr. H. Hadari Nawawi", + grp_limaem_cta_info2_label: "Office Hours", + grp_limaem_cta_info2_val: "Monday - Friday, 08:00 - 17:00 WIB", + grp_limaem_cta_info3_label: "Social Media", + grp_limaem_cta_info3_val: "@hmif.untan, YouTube: HMIF UNTAN TV", } }; diff --git a/groups/LimaEm/assets/css/output.css b/groups/LimaEm/assets/css/output.css new file mode 100644 index 0000000..4e6c433 --- /dev/null +++ b/groups/LimaEm/assets/css/output.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-300:oklch(87.9% .169 91.605);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-800:oklch(27.9% .041 260.031);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-md:12px;--blur-3xl:64px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-hmif-primary:#0b2f4c;--color-hmif-secondary:#f5c82f}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-20{top:calc(var(--spacing) * -20)}.top-0{top:calc(var(--spacing) * 0)}.top-\[4\%\]{top:4%}.-right-4{right:calc(var(--spacing) * -4)}.-right-20{right:calc(var(--spacing) * -20)}.right-0{right:calc(var(--spacing) * 0)}.right-\[-4\%\]{right:-4%}.-bottom-24{bottom:calc(var(--spacing) * -24)}.bottom-\[-3\%\]{bottom:-3%}.bottom-\[-4\%\]{bottom:-4%}.-left-4{left:calc(var(--spacing) * -4)}.-left-16{left:calc(var(--spacing) * -16)}.left-0{left:calc(var(--spacing) * 0)}.left-\[0\%\]{left:0%}.left-\[8\%\]{left:8%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1{height:calc(var(--spacing) * 1)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-11{height:calc(var(--spacing) * 11)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-48{height:calc(var(--spacing) * 48)}.h-56{height:calc(var(--spacing) * 56)}.h-\[420px\]{height:420px}.h-auto{height:auto}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[24px\]{border-radius:24px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-100\/50{border-color:#f3f4f680}@supports (color:color-mix(in lab, red, red)){.border-gray-100\/50{border-color:color-mix(in oklab, var(--color-gray-100) 50%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-hmif-secondary{border-color:var(--color-hmif-secondary)}.border-white{border-color:var(--color-white)}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-white\/25{border-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.border-white\/25{border-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.bg-\[\#082A4B\]{background-color:#082a4b}.bg-\[\#EEF2FC\]{background-color:#eef2fc}.bg-\[\#EEF2FC\]\/70{background-color:oklab(96.101% -.000369817 -.0140598/.7)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-hmif-primary{background-color:var(--color-hmif-primary)}.bg-hmif-secondary{background-color:var(--color-hmif-secondary)}.bg-hmif-secondary\/15{background-color:#f5c82f26}@supports (color:color-mix(in lab, red, red)){.bg-hmif-secondary\/15{background-color:color-mix(in oklab, var(--color-hmif-secondary) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-white\/\[0\.01\]{background-color:#ffffff03}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.01\]{background-color:color-mix(in oklab, var(--color-white) 1%, transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-hmif-primary{--tw-gradient-from:var(--color-hmif-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-hmif-primary\/45{--tw-gradient-from:#0b2f4c73}@supports (color:color-mix(in lab, red, red)){.from-hmif-primary\/45{--tw-gradient-from:color-mix(in oklab, var(--color-hmif-primary) 45%, transparent)}}.from-hmif-primary\/45{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/5{--tw-gradient-from:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.from-white\/5{--tw-gradient-from:color-mix(in oklab, var(--color-white) 5%, transparent)}}.from-white\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-hmif-primary\/80{--tw-gradient-via:#0b2f4ccc}@supports (color:color-mix(in lab, red, red)){.via-hmif-primary\/80{--tw-gradient-via:color-mix(in oklab, var(--color-hmif-primary) 80%, transparent)}}.via-hmif-primary\/80{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-bottom{object-position:bottom}.p-2{padding:calc(var(--spacing) * 2)}.p-8{padding:calc(var(--spacing) * 8)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-20{padding-top:calc(var(--spacing) * 20)}.pt-\[92px\]{padding-top:92px}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-\[\#b48608\]{color:#b48608}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-hmif-primary{color:var(--color-hmif-primary)}.text-hmif-secondary{color:var(--color-hmif-secondary)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-600{color:var(--color-slate-600)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.text-white\/72{color:#ffffffb8}@supports (color:color-mix(in lab, red, red)){.text-white\/72{color:color-mix(in oklab, var(--color-white) 72%, transparent)}}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_10px_24px_rgba\(245\,200\,47\,0\.35\)\]{--tw-shadow:0 10px 24px var(--tw-shadow-color,#f5c82f59);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_24px_70px_rgba\(4\,17\,31\,0\.32\)\]{--tw-shadow:0 24px 70px var(--tw-shadow-color,#04111f52);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:scale-\[1\.03\]:is(:where(.group):hover *){scale:1.03}.group-hover\:text-amber-300:is(:where(.group):hover *){color:var(--color-amber-300)}.group-hover\:text-hmif-primary:is(:where(.group):hover *){color:var(--color-hmif-primary)}.group-hover\:text-hmif-secondary:is(:where(.group):hover *){color:var(--color-hmif-secondary)}.group-hover\:opacity-45:is(:where(.group):hover *){opacity:.45}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-hmif-primary:hover{border-color:var(--color-hmif-primary)}.hover\:border-hmif-secondary:hover{border-color:var(--color-hmif-secondary)}.hover\:bg-hmif-secondary:hover{background-color:var(--color-hmif-secondary)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:bg-white\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/15:hover{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.hover\:text-hmif-primary:hover{color:var(--color-hmif-primary)}.hover\:text-hmif-secondary:hover{color:var(--color-hmif-secondary)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:grayscale-0:hover{--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:40rem){.sm\:block{display:block}.sm\:h-16{height:calc(var(--spacing) * 16)}.sm\:flex-row{flex-direction:row}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.sm\:border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.sm\:border-white\/30{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-12{padding-block:calc(var(--spacing) * 12)}.sm\:pt-0{padding-top:calc(var(--spacing) * 0)}.sm\:pl-5{padding-left:calc(var(--spacing) * 5)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media (min-width:48rem){.md\:mb-16{margin-bottom:calc(var(--spacing) * 16)}.md\:block{display:block}.md\:h-\[420px\]{height:420px}.md\:w-\[calc\(50\%_-_16px\)\]{width:calc(50% - 16px)}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.md\:border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.md\:border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.md\:p-10{padding:calc(var(--spacing) * 10)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:-right-12{right:calc(var(--spacing) * -12)}.lg\:-left-12{left:calc(var(--spacing) * -12)}.lg\:mt-0{margin-top:calc(var(--spacing) * 0)}.lg\:mt-12{margin-top:calc(var(--spacing) * 12)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-11{height:calc(var(--spacing) * 11)}.lg\:h-16{height:calc(var(--spacing) * 16)}.lg\:h-20{height:calc(var(--spacing) * 20)}.lg\:h-\[500px\]{height:500px}.lg\:w-11{width:calc(var(--spacing) * 11)}.lg\:w-16{width:calc(var(--spacing) * 16)}.lg\:w-20{width:calc(var(--spacing) * 20)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:gap-10{gap:calc(var(--spacing) * 10)}.lg\:gap-16{gap:calc(var(--spacing) * 16)}.lg\:rounded-3xl{border-radius:var(--radius-3xl)}.lg\:p-10{padding:calc(var(--spacing) * 10)}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}.lg\:px-12{padding-inline:calc(var(--spacing) * 12)}.lg\:px-16{padding-inline:calc(var(--spacing) * 16)}.lg\:py-4{padding-block:calc(var(--spacing) * 4)}.lg\:py-14{padding-block:calc(var(--spacing) * 14)}.lg\:py-20{padding-block:calc(var(--spacing) * 20)}.lg\:py-24{padding-block:calc(var(--spacing) * 24)}.lg\:pt-10{padding-top:calc(var(--spacing) * 10)}.lg\:pt-24{padding-top:calc(var(--spacing) * 24)}.lg\:pt-\[118px\]{padding-top:118px}.lg\:pr-6{padding-right:calc(var(--spacing) * 6)}.lg\:pl-4{padding-left:calc(var(--spacing) * 4)}.lg\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.lg\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.lg\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.lg\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.lg\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.lg\:text-\[11px\]{font-size:11px}.lg\:text-\[15px\]{font-size:15px}.lg\:text-\[17px\]{font-size:17px}.lg\:text-\[38px\]{font-size:38px}}@media (min-width:80rem){.xl\:px-24{padding-inline:calc(var(--spacing) * 24)}.xl\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.xl\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}}@media (min-width:96rem){.\32 xl\:max-w-\[1440px\]{max-width:1440px}}}html{scroll-behavior:smooth}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0} \ No newline at end of file diff --git a/groups/LimaEm/assets/images/bg-kehidupan-mahasiswa.png b/groups/LimaEm/assets/images/bg-kehidupan-mahasiswa.png new file mode 100644 index 0000000..3788f6c Binary files /dev/null and b/groups/LimaEm/assets/images/bg-kehidupan-mahasiswa.png differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/Copy of DSC09492.jpg b/groups/LimaEm/assets/images/galeri-keseruan/Copy of DSC09492.jpg new file mode 100644 index 0000000..7d804ea Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/Copy of DSC09492.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC00091.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC00091.jpg new file mode 100644 index 0000000..51c9f98 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC00091.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC00252.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC00252.jpg new file mode 100644 index 0000000..50e773e Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC00252.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC00456.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC00456.jpg new file mode 100644 index 0000000..68e41db Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC00456.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC00519.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC00519.jpg new file mode 100644 index 0000000..815365e Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC00519.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC00636.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC00636.jpg new file mode 100644 index 0000000..550e837 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC00636.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC01002.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC01002.jpg new file mode 100644 index 0000000..9c81393 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC01002.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSC03316.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSC03316.jpg new file mode 100644 index 0000000..fa0a8e6 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSC03316.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/DSCF8922.jpg b/groups/LimaEm/assets/images/galeri-keseruan/DSCF8922.jpg new file mode 100644 index 0000000..ea580b7 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/DSCF8922.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/IMG_0030.jpg b/groups/LimaEm/assets/images/galeri-keseruan/IMG_0030.jpg new file mode 100644 index 0000000..cafbd61 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/IMG_0030.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/IMG_0204.jpg b/groups/LimaEm/assets/images/galeri-keseruan/IMG_0204.jpg new file mode 100644 index 0000000..79db209 Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/IMG_0204.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/IMG_5705.jpg b/groups/LimaEm/assets/images/galeri-keseruan/IMG_5705.jpg new file mode 100644 index 0000000..b6a043e Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/IMG_5705.jpg differ diff --git a/groups/LimaEm/assets/images/galeri-keseruan/skbi.jpg b/groups/LimaEm/assets/images/galeri-keseruan/skbi.jpg new file mode 100644 index 0000000..320c05d Binary files /dev/null and b/groups/LimaEm/assets/images/galeri-keseruan/skbi.jpg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/17-agustus.jpeg b/groups/LimaEm/assets/images/kegiatan-unggulan/17-agustus.jpeg new file mode 100644 index 0000000..a31b545 Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/17-agustus.jpeg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/SE.jpeg b/groups/LimaEm/assets/images/kegiatan-unggulan/SE.jpeg new file mode 100644 index 0000000..4d9c280 Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/SE.jpeg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/SKBI.jpeg b/groups/LimaEm/assets/images/kegiatan-unggulan/SKBI.jpeg new file mode 100644 index 0000000..a1afca4 Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/SKBI.jpeg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/bootcamp.jpeg b/groups/LimaEm/assets/images/kegiatan-unggulan/bootcamp.jpeg new file mode 100644 index 0000000..cd1b851 Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/bootcamp.jpeg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/gemastik.jpg b/groups/LimaEm/assets/images/kegiatan-unggulan/gemastik.jpg new file mode 100644 index 0000000..80ade0b Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/gemastik.jpg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/informers.jpg b/groups/LimaEm/assets/images/kegiatan-unggulan/informers.jpg new file mode 100644 index 0000000..6bd090b Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/informers.jpg differ diff --git a/groups/LimaEm/assets/images/kegiatan-unggulan/upc.jpg b/groups/LimaEm/assets/images/kegiatan-unggulan/upc.jpg new file mode 100644 index 0000000..c5770df Binary files /dev/null and b/groups/LimaEm/assets/images/kegiatan-unggulan/upc.jpg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/ayanimegamall.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/ayanimegamall.jpeg new file mode 100644 index 0000000..0ef30ff Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/ayanimegamall.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/indofood.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/indofood.jpeg new file mode 100644 index 0000000..f120dbf Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/indofood.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/namaku.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/namaku.jpeg new file mode 100644 index 0000000..1dfee43 Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/namaku.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/playhera.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/playhera.jpeg new file mode 100644 index 0000000..b8c443d Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/playhera.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/pln.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/pln.jpeg new file mode 100644 index 0000000..3370bbd Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/pln.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/rtech.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/rtech.jpeg new file mode 100644 index 0000000..7d14333 Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/rtech.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/rumangsa.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/rumangsa.jpeg new file mode 100644 index 0000000..9e528a5 Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/rumangsa.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/partner/sobatkonveksi.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/partner/sobatkonveksi.jpeg new file mode 100644 index 0000000..b044362 Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/partner/sobatkonveksi.jpeg differ diff --git a/groups/LimaEm/assets/images/ruang-tumbuh/ruangtumbuh_foto.jpeg b/groups/LimaEm/assets/images/ruang-tumbuh/ruangtumbuh_foto.jpeg new file mode 100644 index 0000000..45ec33f Binary files /dev/null and b/groups/LimaEm/assets/images/ruang-tumbuh/ruangtumbuh_foto.jpeg differ diff --git a/groups/LimaEm/assets/js/main.js b/groups/LimaEm/assets/js/main.js new file mode 100644 index 0000000..10a4cd2 --- /dev/null +++ b/groups/LimaEm/assets/js/main.js @@ -0,0 +1,565 @@ +// ============================================================================= +// main.js — Logika Interaksi Halaman HMIF +// +// Struktur: +// 1. Mobile Menu — Toggle menu navigasi mobile +// 2. Language Toggle — Terjemahan halaman ID/EN +// 3. Galeri Keseruan — Slider bento grid foto keseruan +// 4. Kegiatan Unggulan — Slider kartu kegiatan tahunan +// ============================================================================= + + +// ============================================================================= +// 1. MOBILE MENU +// Toggle visibilitas menu navigasi pada tampilan mobile. +// ============================================================================= + +(function () { + var mobileMenuButton = document.getElementById('mobile-menu-button'); + var mobileMenu = document.getElementById('mobile-menu'); + + if (!mobileMenuButton || !mobileMenu) return; + + mobileMenuButton.addEventListener('click', function () { + var isHidden = mobileMenu.classList.contains('hidden'); + mobileMenu.classList.toggle('hidden', !isHidden); + mobileMenuButton.setAttribute('aria-expanded', String(isHidden)); + }); +})(); + + +// ============================================================================= +// 2. LANGUAGE TOGGLE +// Terjemahan konten halaman antara Bahasa Indonesia dan Bahasa Inggris. +// Preferensi bahasa disimpan di localStorage agar persisten antar sesi. +// ============================================================================= + +(function () { + var languageToggles = document.querySelectorAll('[data-language-toggle]'); + + if (!languageToggles.length) return; + + var translationMap = { + 'Kehidupan Mahasiswa & Himpunan (HMIF)': { + id: 'Kehidupan Mahasiswa & Himpunan (HMIF)', + en: 'Student Life & Association (HMIF)' + }, + 'ABOUT US': { id: 'TENTANG KAMI', en: 'ABOUT US' }, + 'PROGRAMS': { id: 'PROGRAM', en: 'PROGRAMS' }, + 'HUMAN RESOURCES': { id: 'SUMBER DAYA MANUSIA', en: 'HUMAN RESOURCES' }, + 'FACILITIES': { id: 'FASILITAS', en: 'FACILITIES' }, + 'WORKS & EVENTS': { id: 'KARYA & KEGIATAN', en: 'WORKS & EVENTS' }, + 'CONTACT': { id: 'KONTAK', en: 'CONTACT' }, + 'COMMUNITY & LEADERSHIP': { id: 'KOMUNITAS & KEPEMIMPINAN', en: 'COMMUNITY & LEADERSHIP' }, + 'Membangun ekosistem kolaboratif di mana teknologi bertemu dengan kreativitas, membentuk calon pemimpin industri masa depan.': { + id: 'Membangun ekosistem kolaboratif di mana teknologi bertemu dengan kreativitas, membentuk calon pemimpin industri masa depan.', + en: 'Building a collaborative ecosystem where technology meets creativity, shaping future industry leaders.' + }, + 'Lihat Struktur Kepengurusan': { id: 'Lihat Struktur Kepengurusan', en: 'View Organization Structure' }, + 'Ruang Tumbuh Bagi Mahasiswa Informatika': { + id: 'Ruang Tumbuh Bagi Mahasiswa Informatika', + en: 'A Growth Space For Informatics Students' + }, + 'Himpunan Mahasiswa Informatika (HMIF) Universitas Tanjungpura bukan sekadar organisasi, melainkan rumah bagi para pemimpin teknologi. Kami percaya bahwa pendidikan formal adalah fondasi, namun komunitas adalah akselerator.': { + id: 'Himpunan Mahasiswa Informatika (HMIF) Universitas Tanjungpura bukan sekadar organisasi, melainkan rumah bagi para pemimpin teknologi. Kami percaya bahwa pendidikan formal adalah fondasi, namun komunitas adalah akselerator.', + en: 'The Informatics Student Association (HMIF) of Universitas Tanjungpura is more than an organization; it is a home for future technology leaders. We believe formal education is the foundation, while community is the accelerator.' + }, + 'Melalui berbagai inisiatif, kami menjembatani kesenjangan antara kurikulum akademik dan kebutuhan industri, sambil tetap menjaga semangat kekeluargaan dan integritas ilmiah.': { + id: 'Melalui berbagai inisiatif, kami menjembatani kesenjangan antara kurikulum akademik dan kebutuhan industri, sambil tetap menjaga semangat kekeluargaan dan integritas ilmiah.', + en: 'Through various initiatives, we bridge the gap between academic curricula and industry needs while preserving a spirit of kinship and academic integrity.' + }, + 'Mahasiswa Aktif': { id: 'Mahasiswa Aktif', en: 'Active Students' }, + 'MITRA': { id: 'MITRA', en: 'PARTNERS' }, + 'Partner Industri': { id: 'Partner Industri', en: 'Industry Partners' }, + 'Inklusivitas & Kolaborasi': { id: 'Inklusivitas &
Kolaborasi', en: 'Inclusivity &
Collaboration' }, + 'Partner & Kolaborator': { id: 'Partner & Kolaborator', en: 'Partners & Collaborators' }, + 'Partner dan Kolaborator': { id: 'Partner dan Kolaborator', en: 'Partners and Collaborators' }, + 'Divisi Kepengurusan HMIF': { id: 'Divisi Kepengurusan HMIF', en: 'HMIF Management Divisions' }, + 'Struktur organisasi yang dirancang untuk efisiensi dan pengembangan kapasitas anggota di berbagai bidang strategis.': { + id: 'Struktur organisasi yang dirancang untuk efisiensi dan pengembangan kapasitas anggota di berbagai bidang strategis.', + en: 'An organizational structure designed for efficiency and member capacity development across strategic areas.' + }, + 'Bidang 1': { id: 'Bidang 1', en: 'Division 1' }, + 'Bidang 2': { id: 'Bidang 2', en: 'Division 2' }, + 'Bidang 3': { id: 'Bidang 3', en: 'Division 3' }, + 'Bidang 4': { id: 'Bidang 4', en: 'Division 4' }, + 'Bidang 5': { id: 'Bidang 5', en: 'Division 5' }, + 'Bidang 6': { id: 'Bidang 6', en: 'Division 6' }, + 'Pengembangan Sumber Daya Mahasiswa dan Kaderisasi': { + id: 'Pengembangan Sumber Daya Mahasiswa dan Kaderisasi', + en: 'Student Resource Development and Cadre Formation' + }, + 'Divisi ini menyelenggarakan kaderisasi terstruktur, mentoring berkala, dan pelatihan kepemimpinan serta soft-skill. Program kerja mencakup onboarding anggota baru, workshop kepemimpinan, proyek kolaboratif, dan kegiatan pengabdian yang melatih tanggung jawab sosial. Fokusnya adalah menyiapkan kader yang kompeten dan menjaga regenerasi organisasi.': { + id: 'Divisi ini menyelenggarakan kaderisasi terstruktur, mentoring berkala, dan pelatihan kepemimpinan serta soft-skill. Program kerja mencakup onboarding anggota baru, workshop kepemimpinan, proyek kolaboratif, dan kegiatan pengabdian yang melatih tanggung jawab sosial. Fokusnya adalah menyiapkan kader yang kompeten dan menjaga regenerasi organisasi.', + en: 'This division runs structured cadre development, regular mentoring, and leadership and soft-skill training. Its programs include new member onboarding, leadership workshops, collaborative projects, and community service activities that build social responsibility. The focus is preparing competent members and sustaining organizational regeneration.' + }, + 'Mendukung mahasiswa untuk terus berkembang, dengan pembinaan dan kaderisasi yang berkelanjutan.': { + id: 'Mendukung mahasiswa untuk terus berkembang, dengan pembinaan dan kaderisasi yang berkelanjutan.', + en: 'Supporting students to keep growing through continuous mentoring and cadre development.' + }, + 'Pengembangan Organisasi': { id: 'Pengembangan Organisasi', en: 'Organizational Development' }, + 'Divisi ini memperkuat tata kelola dan kapabilitas internal melalui pelatihan pengurus, penyusunan SOP sederhana, dan evaluasi proses kerja. Program kerjanya mencakup pengembangan budaya organisasi, peningkatan efektivitas koordinasi, dan kegiatan peningkatan profesionalisme sehingga operasi HMIF menjadi lebih terstruktur dan efisien.': { + id: 'Divisi ini memperkuat tata kelola dan kapabilitas internal melalui pelatihan pengurus, penyusunan SOP sederhana, dan evaluasi proses kerja. Program kerjanya mencakup pengembangan budaya organisasi, peningkatan efektivitas koordinasi, dan kegiatan peningkatan profesionalisme sehingga operasi HMIF menjadi lebih terstruktur dan efisien.', + en: 'This division strengthens governance and internal capability through board training, simple SOP development, and workflow evaluation. Its programs include organizational culture development, coordination effectiveness improvement, and professionalism initiatives so HMIF operations become more structured and efficient.' + }, + 'Mendukung organisasi agar berjalan lebih rapi, terstruktur, dan semakin berkembang.': { + id: 'Mendukung organisasi agar berjalan lebih rapi, terstruktur, dan semakin berkembang.', + en: 'Helping the organization run in a more orderly, structured, and progressive way.' + }, + 'Media Komunikasi dan Konten Digital': { + id: 'Media Komunikasi dan Konten Digital', + en: 'Communication Media and Digital Content' + }, + 'Divisi ini mengelola strategi komunikasi dan produksi konten HMIF, termasuk perencanaan editorial, manajemen media sosial, serta dokumentasi acara. Program kerjanya meliputi pembuatan materi promosi, publikasi kegiatan, dan penguatan identitas digital agar informasi organisasi tersampaikan konsisten dan menarik.': { + id: 'Divisi ini mengelola strategi komunikasi dan produksi konten HMIF, termasuk perencanaan editorial, manajemen media sosial, serta dokumentasi acara. Program kerjanya meliputi pembuatan materi promosi, publikasi kegiatan, dan penguatan identitas digital agar informasi organisasi tersampaikan konsisten dan menarik.', + en: 'This division manages HMIF communication strategy and content production, including editorial planning, social media management, and event documentation. Its programs cover promotional materials, activity publications, and digital identity strengthening so organizational information is delivered consistently and attractively.' + }, + 'Mengelola media dan komunikasi digital untuk menyampaikan informasi dengan lebih menarik dan mudah diakses.': { + id: 'Mengelola media dan komunikasi digital untuk menyampaikan informasi dengan lebih menarik dan mudah diakses.', + en: 'Managing digital media and communication to deliver information in a more engaging and accessible way.' + }, + 'Sosial Masyarakat': { id: 'Sosial Masyarakat', en: 'Community Service' }, + 'Divisi ini merancang dan melaksanakan program pengabdian serta aksi sosial yang berdampak, termasuk pendampingan komunitas dan bantuan kemanusiaan. Kegiatan meliputi identifikasi kebutuhan lapangan, pelaksanaan terstruktur, dan evaluasi dampak untuk memastikan keberlanjutan dan manfaat nyata bagi masyarakat.': { + id: 'Divisi ini merancang dan melaksanakan program pengabdian serta aksi sosial yang berdampak, termasuk pendampingan komunitas dan bantuan kemanusiaan. Kegiatan meliputi identifikasi kebutuhan lapangan, pelaksanaan terstruktur, dan evaluasi dampak untuk memastikan keberlanjutan dan manfaat nyata bagi masyarakat.', + en: 'This division designs and carries out impactful community service programs and social actions, including community assistance and humanitarian support. Activities include field needs assessment, structured implementation, and impact evaluation to ensure sustainability and real benefits for the community.' + }, + 'Berbagi dan berkontribusi melalui berbagai kegiatan sosial, sekaligus membawa dampak positif bagi masyarakat.': { + id: 'Berbagi dan berkontribusi melalui berbagai kegiatan sosial, sekaligus membawa dampak positif bagi masyarakat.', + en: 'Sharing and contributing through social activities while bringing positive impact to the community.' + }, + 'Inovasi dan Kompetisi Teknologi': { + id: 'Inovasi dan Kompetisi Teknologi', + en: 'Technology Innovation and Competition' + }, + 'Divisi ini memfasilitasi persiapan lomba dan pengembangan proyek teknis melalui coaching clinic, bootcamp berbasis proyek, serta study club untuk Competitive Programming, Software Development, dan Data/ML. Kegiatan termasuk seleksi internal, bimbingan kompetitif, dan inisiatif digitalisasi seperti pengembangan website dan dashboard untuk mendukung ekosistem inovasi HMIF.': { + id: 'Divisi ini memfasilitasi persiapan lomba dan pengembangan proyek teknis melalui coaching clinic, bootcamp berbasis proyek, serta study club untuk Competitive Programming, Software Development, dan Data/ML. Kegiatan termasuk seleksi internal, bimbingan kompetitif, dan inisiatif digitalisasi seperti pengembangan website dan dashboard untuk mendukung ekosistem inovasi HMIF.', + en: 'This division facilitates competition preparation and technical project development through coaching clinics, project-based bootcamps, and study clubs for Competitive Programming, Software Development, and Data/ML. Activities include internal selection, competitive mentoring, and digitalization initiatives such as website and dashboard development to support HMIF innovation.' + }, + 'Mengembangkan inovasi dan skill teknologi, sambil mendorong mahasiswa untuk berani mencoba dan ikut berbagai tantangan.': { + id: 'Mengembangkan inovasi dan skill teknologi, sambil mendorong mahasiswa untuk berani mencoba dan ikut berbagai tantangan.', + en: 'Developing innovation and technology skills while encouraging students to try new challenges.' + }, + 'Kewirausahaan dan Kemitraan': { id: 'Kewirausahaan dan Kemitraan', en: 'Entrepreneurship and Partnership' }, + 'Divisi ini mengembangkan unit usaha organisasi, merancang skema pendanaan kreatif, dan menjalin kemitraan strategis untuk mendukung keberlanjutan program HMIF. Unit kerjanya meliputi riset peluang usaha, penyusunan proposal kemitraan, dan pengelolaan sponsor untuk meningkatkan kemandirian finansial dan akses jaringan profesional.': { + id: 'Divisi ini mengembangkan unit usaha organisasi, merancang skema pendanaan kreatif, dan menjalin kemitraan strategis untuk mendukung keberlanjutan program HMIF. Unit kerjanya meliputi riset peluang usaha, penyusunan proposal kemitraan, dan pengelolaan sponsor untuk meningkatkan kemandirian finansial dan akses jaringan profesional.', + en: 'This division develops organizational business units, designs creative funding schemes, and builds strategic partnerships to support HMIF program sustainability. Its work includes business opportunity research, partnership proposal development, and sponsor management to improve financial independence and professional network access.' + }, + 'Mengembangkan jiwa kewirausahaan, sekaligus membangun kolaborasi dan membuka peluang bersama berbagai mitra.': { + id: 'Mengembangkan jiwa kewirausahaan, sekaligus membangun kolaborasi dan membuka peluang bersama berbagai mitra.', + en: 'Developing an entrepreneurial mindset while building collaboration and opportunities with partners.' + }, + 'Kegiatan Unggulan': { id: 'Kegiatan Unggulan', en: 'Featured Activities' }, + 'Kegiatan tahunan yang menjadi ikon Informatika UNTAN.': { + id: 'Kegiatan tahunan yang menjadi ikon Informatika UNTAN.', + en: 'Annual activities that have become icons of Informatics UNTAN.' + }, + 'Kompetisi Coding untuk mengasah skill coding mahasiswa Informatika.': { + id: 'Kompetisi Coding untuk mengasah skill coding mahasiswa Informatika.', + en: 'A coding competition to sharpen Informatics students coding skills.' + }, + 'Silaturahmi Keluarga Besar Informatika': { + id: 'Silaturahmi Keluarga Besar Informatika', + en: 'Informatics Family Gathering' + }, + 'Feb': { id: 'Feb', en: 'Feb' }, + 'Jul': { id: 'Jul', en: 'Jul' }, + 'Sep': { id: 'Sep', en: 'Sep' }, + 'Kegiatan buka bersama seluruh keluarga Informatika Untan yang selalu diadakan setiap tahunnya.': { + id: 'Kegiatan buka bersama seluruh keluarga Informatika Untan yang selalu diadakan setiap tahunnya.', + en: 'An annual iftar gathering for the entire Informatics UNTAN family.' + }, + 'Program intensif GEMASTIK adalah kompetisi IT tahunan tingkat nasional yang mempertemukan mahasiswa se-Indonesia. Lomba ini fokus pada pemecahan masalah lewat teknologi, dengan cabang yang beragam seperti programming, cyber security, data mining, sampai pengembangan UI/UX.': { + id: 'Program intensif GEMASTIK adalah kompetisi IT tahunan tingkat nasional yang mempertemukan mahasiswa se-Indonesia. Lomba ini fokus pada pemecahan masalah lewat teknologi, dengan cabang yang beragam seperti programming, cyber security, data mining, sampai pengembangan UI/UX.', + en: 'GEMASTIK is an intensive annual national IT competition that brings together students from across Indonesia. It focuses on solving problems through technology, with categories ranging from programming, cyber security, and data mining to UI/UX development.' + }, + 'Okt': { id: 'Okt', en: 'Oct' }, + 'Ultah Informatika': { id: 'Ultah Informatika', en: 'Informatics Anniversary' }, + 'Perayaan ulang tahun Informatika UNTAN, momen kebersamaan dan kebanggaan seluruh keluarga besar Informatika.': { + id: 'Perayaan ulang tahun Informatika UNTAN, momen kebersamaan dan kebanggaan seluruh keluarga besar Informatika.', + en: 'The Informatics UNTAN anniversary celebration, a moment of togetherness and pride for the whole Informatics family.' + }, + 'Agu': { id: 'Agu', en: 'Aug' }, + 'Program intensif pengembangan skill teknis mahasiswa Informatika bersama mentor profesional dari industri.': { + id: 'Program intensif pengembangan skill teknis mahasiswa Informatika bersama mentor profesional dari industri.', + en: 'An intensive program for developing Informatics students technical skills with professional mentors from industry.' + }, + 'STUDY CLUB': { id: 'STUDY CLUB', en: 'STUDY CLUB' }, + 'Belajar logika dan algoritma bersama, di mana kalian bisa berkembang dan membuka peluang mengikuti kompetisi pemrograman di berbagai level.': { + id: 'Belajar logika dan algoritma bersama, di mana kalian bisa berkembang dan membuka peluang mengikuti kompetisi pemrograman di berbagai level.', + en: 'Learn logic and algorithms together, grow your abilities, and open opportunities to join programming competitions at various levels.' + }, + 'Gali potensi tersembunyi dari tumpukan data! Di sini kita akan bereksplorasi dengan algoritma Machine Learning, membedah teknik klasifikasi, hingga melatih model prediktif untuk menghasilkan insight yang bermakna.': { + id: 'Gali potensi tersembunyi dari tumpukan data! Di sini kita akan bereksplorasi dengan algoritma Machine Learning, membedah teknik klasifikasi, hingga melatih model prediktif untuk menghasilkan insight yang bermakna.', + en: 'Explore hidden potential in piles of data! Here we experiment with Machine Learning algorithms, examine classification techniques, and train predictive models to produce meaningful insights.' + }, + 'Wujudkan idemu jadi produk digital yang nyata! Kita akan ngoding bareng dari merancang frontend yang interaktif, membangun backend yang tangguh, serta mengintegrasikan berbagai API untuk menciptakan aplikasi web masa kini.': { + id: 'Wujudkan idemu jadi produk digital yang nyata! Kita akan ngoding bareng dari merancang frontend yang interaktif, membangun backend yang tangguh, serta mengintegrasikan berbagai API untuk menciptakan aplikasi web masa kini.', + en: 'Turn your ideas into real digital products! We will code together, from designing interactive frontends and building robust backends to integrating APIs for modern web applications.' + }, + 'Di sini, kalian bisa belajar membuat website dan aplikasi web, sekaligus mengembangkan ide menjadi sesuatu yang nyata.': { + id: 'Di sini, kalian bisa belajar membuat website dan aplikasi web, sekaligus mengembangkan ide menjadi sesuatu yang nyata.', + en: 'Here, you can learn to build websites and web applications while turning ideas into something real.' + }, + 'Belajar memahami sistem dan cara menjaganya, supaya lebih siap menghadapi berbagai ancaman digital.': { + id: 'Belajar memahami sistem dan cara menjaganya, supaya lebih siap menghadapi berbagai ancaman digital.', + en: 'Learn to understand systems and how to protect them, so you are better prepared for digital threats.' + }, + 'Galeri Keseruan': { id: 'Galeri Keseruan', en: 'Activity Gallery' }, + 'Ada yang Ingin Ditanyakan Seputar HMIF?': { + id: 'Ada yang Ingin Ditanyakan Seputar HMIF?', + en: 'Have Questions About HMIF?' + }, + 'Bergabunglah dengan HMIF untuk memperluas jaringan, mengasah skill, dan menciptakan dampak nyata.': { + id: 'Bergabunglah dengan HMIF untuk memperluas jaringan, mengasah skill, dan menciptakan dampak nyata.', + en: 'Join HMIF to expand your network, sharpen your skills, and create real impact.' + }, + 'Hubungi Kami': { id: 'Hubungi Kami', en: 'Contact Us' }, + 'Sekretariat': { id: 'Sekretariat', en: 'Secretariat' }, + 'Gedung Fakultas Teknik Lt. 2 Jl. Prof. Dr. H. Hadari Nawawi': { + id: 'Gedung Fakultas Teknik Lt. 2
Jl. Prof. Dr. H. Hadari Nawawi', + en: 'Faculty of Engineering Building, 2nd Floor
Jl. Prof. Dr. H. Hadari Nawawi' + }, + 'Jam Operasional': { id: 'Jam Operasional', en: 'Operating Hours' }, + 'Senin - Jumat 08:00 - 17:00 WIB': { + id: 'Senin - Jumat
08:00 - 17:00 WIB', + en: 'Monday - Friday
08:00 - 17:00 WIB' + }, + 'Media Sosial': { id: 'Media Sosial', en: 'Social Media' }, + 'Jl. Prof. Dr. H. Hadari Nawawi, Bansir Laut, Kec. Pontianak Tenggara,': { + id: 'Jl. Prof. Dr. H. Hadari Nawawi, Bansir Laut, Kec. Pontianak Tenggara,', + en: 'Prof. Dr. H. Hadari Nawawi St., Bansir Laut, Southeast Pontianak District,' + }, + 'Kota Pontianak, Kalimantan Barat 78124': { + id: 'Kota Pontianak, Kalimantan Barat 78124', + en: 'Pontianak City, West Kalimantan 78124' + }, + 'FOLLOW US': { id: 'IKUTI KAMI', en: 'FOLLOW US' } + }; + + // Normalisasi whitespace untuk pencocokan teks yang konsisten + function normalizeText(value) { + return value.replace(/\s+/g, ' ').trim(); + } + + function stripHtmlTags(value) { + var template = document.createElement('template'); + template.innerHTML = value; + return template.content.textContent || ''; + } + + // Ambil teks murni dari elemen, termasuk teks dalam child nodes + function getElementText(element) { + function collectText(node) { + if (node.nodeType === Node.TEXT_NODE) return node.nodeValue; + if (node.nodeName === 'BR') return ' '; + return Array.prototype.map.call(node.childNodes, collectText).join(''); + } + return normalizeText(collectText(element)); + } + + // Buat lookup map dari teks yang sudah dinormalisasi ke key translationMap + var translationLookup = Object.keys(translationMap).reduce(function (lookup, key) { + lookup[normalizeText(key)] = key; + lookup[normalizeText(translationMap[key].id)] = key; + lookup[normalizeText(stripHtmlTags(translationMap[key].id))] = key; + return lookup; + }, {}); + + // Tandai semua elemen yang bisa diterjemahkan dengan data attribute + function markTranslatableElements() { + document.querySelectorAll('a, button, h1, h2, h3, p, span').forEach(function (element) { + var key = translationLookup[getElementText(element)]; + if (key) element.dataset.i18nKey = key; + }); + } + + // Render teks terjemahan — gunakan innerHTML jika ada tag HTML, textContent jika tidak + function renderTranslatedText(element, value) { + if (value.indexOf('<') !== -1) { + element.innerHTML = value; + } else { + element.textContent = value; + } + } + + // Update tampilan tombol toggle sesuai bahasa aktif + function updateLanguageToggle(language) { + languageToggles.forEach(function (toggle) { + toggle.innerHTML = language === 'id' + ? 'ID | EN' + : 'ID | EN'; + toggle.setAttribute('aria-pressed', String(language === 'en')); + toggle.setAttribute('aria-label', language === 'id' + ? 'Ganti bahasa ke Inggris' + : 'Switch language to Indonesian'); + }); + } + + // Terapkan bahasa ke seluruh elemen yang sudah ditandai + function applyLanguage(language) { + var safeLanguage = language === 'en' ? 'en' : 'id'; + + document.documentElement.lang = safeLanguage; + document.title = translationMap['Kehidupan Mahasiswa & Himpunan (HMIF)'][safeLanguage]; + + document.querySelectorAll('[data-i18n-key]').forEach(function (element) { + var key = element.dataset.i18nKey; + renderTranslatedText(element, translationMap[key][safeLanguage]); + }); + + updateLanguageToggle(safeLanguage); + + try { + localStorage.setItem('hmif-language', safeLanguage); + } catch (error) { + // Browser mungkin memblokir localStorage di mode private/incognito. + } + } + + // Inisialisasi: tandai elemen, muat preferensi bahasa, pasang event listener + markTranslatableElements(); + + var savedLanguage = 'id'; + try { + savedLanguage = localStorage.getItem('hmif-language') || 'id'; + } catch (error) { + savedLanguage = 'id'; + } + + applyLanguage(savedLanguage); + + languageToggles.forEach(function (toggle) { + toggle.addEventListener('click', function () { + applyLanguage(document.documentElement.lang === 'en' ? 'id' : 'en'); + }); + }); +})(); + + +// ============================================================================= +// 3. GALERI KESERUAN — SLIDER +// Slider bento grid foto keseruan dengan auto-slide, navigasi manual, +// dot indicator, pause on hover, dan recalculate on resize. +// ============================================================================= + +(function () { + var AUTO_DELAY_MS = 4000; // 4 detik per slide + var GAP_PX = 16 * 2; // grid gap-4 = 1rem? but original used gap-4; keep reasonable spacing if needed + + var track = document.getElementById('galeri-track'); + var viewport = document.getElementById('galeri-viewport'); + var prevBtn = document.getElementById('galeri-prev'); + var nextBtn = document.getElementById('galeri-next'); + var dotsContainer = document.getElementById('galeri-dots'); + + if (!track || !viewport || !prevBtn || !nextBtn) return; + + var currentSlide = 0; + var autoSlideTimer; + var originalHTML = track.innerHTML; + + // collect all anchor elements (images) in the original order + var originalAnchors = Array.from((function () { + var tmp = document.createElement('div'); tmp.innerHTML = originalHTML; return tmp; + })().querySelectorAll('a')); + + // builds slides where each slide contains a single image (for small screens) + function buildSingleImageSlides() { + var slides = originalAnchors.map(function (a) { + // clone anchor and remove mobile-hidden class so it becomes visible in single-image slides + try { + var clone = a.cloneNode(true); + if (clone.classList) clone.classList.remove('hidden'); + // also remove inline style display:none if present + if (clone.style) clone.style.display = ''; + return '
' + + '
' + + clone.outerHTML + + '
'; + } catch (e) { + return ''; + } + }); + return slides.join(''); + } + + function getTotalSlides() { + return track.children.length; + } + + // render dot buttons dynamically according to total slides + function renderDots(n) { + if (!dotsContainer) return; + dotsContainer.innerHTML = ''; + for (var i = 0; i < n; i++) { + var btn = document.createElement('button'); + btn.className = 'galeri-dot h-2.5 rounded-full transition-all duration-300 ' + (i === 0 ? 'bg-hmif-primary w-6' : 'bg-gray-200 w-2.5'); + btn.setAttribute('data-index', String(i)); + btn.setAttribute('aria-label', 'Slide ' + (i + 1)); + (function (idx) { btn.addEventListener('click', function () { goToSlide(idx); startAutoSlide(); }); })(i); + dotsContainer.appendChild(btn); + } + } + + function updateDots(activeIndex) { + if (!dotsContainer) return; + var dots = dotsContainer.querySelectorAll('button'); + dots.forEach(function (dot, i) { + if (i === activeIndex) { + dot.classList.remove('bg-gray-200', 'w-2.5'); + dot.classList.add('bg-hmif-primary', 'w-6'); + } else { + dot.classList.remove('bg-hmif-primary', 'w-6'); + dot.classList.add('bg-gray-200', 'w-2.5'); + } + }); + } + + function rebuildTrackForViewport() { + var isMobile = window.innerWidth < 768; // md breakpoint + if (isMobile) { + track.innerHTML = buildSingleImageSlides(); + } else { + track.innerHTML = originalHTML; + } + renderDots(getTotalSlides()); + } + + // Pindah ke slide dengan index tertentu, loop otomatis di kedua arah + function goToSlide(index) { + var total = getTotalSlides(); + if (total === 0) return; + currentSlide = ((index % total) + total) % total; + track.style.transform = 'translateX(-' + (currentSlide * viewport.offsetWidth) + 'px)'; + updateDots(currentSlide); + } + + // Mulai atau restart timer auto-slide + function startAutoSlide() { + clearInterval(autoSlideTimer); + autoSlideTimer = setInterval(function () { goToSlide(currentSlide + 1); }, AUTO_DELAY_MS); + } + + prevBtn.addEventListener('click', function () { goToSlide(currentSlide - 1); startAutoSlide(); }); + nextBtn.addEventListener('click', function () { goToSlide(currentSlide + 1); startAutoSlide(); }); + + // Pause saat kursor di atas galeri + viewport.addEventListener('mouseenter', function () { clearInterval(autoSlideTimer); }); + viewport.addEventListener('mouseleave', startAutoSlide); + + // Recalculate posisi slide saat browser di-resize + window.addEventListener('resize', function () { rebuildTrackForViewport(); goToSlide(currentSlide); }); + + // initial build + rebuildTrackForViewport(); + goToSlide(0); + startAutoSlide(); +})(); + + +// ============================================================================= +// 4. KEGIATAN UNGGULAN — SLIDER +// Slider kartu kegiatan tahunan yang menampilkan 2 kartu sekaligus pada desktop, +// dan 1 kartu pada layar sempit. Logika pergantian disesuaikan agar pergeseran +// selalu berpindah tepat satu item, memperhitungkan gap antar-kartu. +// ============================================================================= + +(function () { + var TOTAL_CARDS = 7; + var AUTO_DELAY_MS = 2000; + var GAP_PX = 32; // gap-8 = 2rem = 32px (tailwind) + + var track = document.getElementById('slider-track'); + var viewport = document.getElementById('slider-viewport'); + var prevBtn = document.getElementById('slider-prev'); + var nextBtn = document.getElementById('slider-next'); + var dotsContainer = document.getElementById('slider-dots'); + + if (!track || !viewport || !prevBtn || !nextBtn) return; + + var current = 0; + var autoTimer; + + function getCardsVisible() { + return window.innerWidth >= 768 ? 2 : 1; // md breakpoint + } + + // lebar kartu yang terlihat (tidak termasuk gap) + function getCardWidth() { + var visible = getCardsVisible(); + if (visible === 1) return viewport.offsetWidth; + return (viewport.offsetWidth - GAP_PX) / visible; + } + + function getMaxIndex() { + return Math.max(0, TOTAL_CARDS - getCardsVisible()); + } + + // Pindah ke posisi slide tertentu; perhitungan berbeda untuk 1 atau 2 kartu + function goTo(index) { + var maxIndex = getMaxIndex(); + current = ((index % (maxIndex + 1)) + (maxIndex + 1)) % (maxIndex + 1); + + if (getCardsVisible() === 1) { + // langkah pergeseran = viewport width + gap + var step = viewport.offsetWidth + GAP_PX; + track.style.transform = 'translateX(-' + (current * step) + 'px)'; + } else { + var cardW = getCardWidth(); + track.style.transform = 'translateX(-' + (current * (cardW + GAP_PX)) + 'px)'; + } + + updateDots(current); + } + + // Render dot indicators dynamically based on total slides + function renderSliderDots(n) { + if (!dotsContainer) return; + dotsContainer.innerHTML = ''; + for (var i = 0; i < n; i++) { + var btn = document.createElement('button'); + btn.className = 'slider-dot h-2.5 w-2.5 rounded-full transition-all duration-300 bg-gray-200 cursor-pointer'; + if (i === 0) { btn.classList.remove('w-2.5', 'bg-gray-200'); btn.classList.add('w-6', 'bg-hmif-primary'); } + btn.setAttribute('data-index', String(i)); + btn.setAttribute('aria-label', 'Slide ' + (i + 1)); + (function (idx) { btn.addEventListener('click', function () { goTo(idx); startAuto(); }); })(i); + dotsContainer.appendChild(btn); + } + } + + function updateDots(activeIndex) { + if (!dotsContainer) return; + var dots = dotsContainer.querySelectorAll('button'); + dots.forEach(function (dot, i) { + if (i === activeIndex) { + dot.classList.remove('bg-gray-200', 'w-2.5'); + dot.classList.add('bg-hmif-primary', 'w-6'); + } else { + dot.classList.remove('bg-hmif-primary', 'w-6'); + dot.classList.add('bg-gray-200', 'w-2.5'); + } + }); + } + + // Mulai atau restart timer auto-slide + function startAuto() { + clearInterval(autoTimer); + autoTimer = setInterval(function () { goTo(current + 1); }, AUTO_DELAY_MS); + } + + prevBtn.addEventListener('click', function () { goTo(current - 1); startAuto(); }); + nextBtn.addEventListener('click', function () { goTo(current + 1); startAuto(); }); + + // initial render of dots according to current viewport + renderSliderDots(getMaxIndex() + 1); + + // Pause saat kursor di atas slider + viewport.addEventListener('mouseenter', function () { clearInterval(autoTimer); }); + viewport.addEventListener('mouseleave', startAuto); + + // Recalculate posisi slide and dots saat browser di-resize + window.addEventListener('resize', function () { renderSliderDots(getMaxIndex() + 1); goTo(current); }); + + goTo(0); + startAuto(); +})(); \ No newline at end of file diff --git a/groups/LimaEm/index.html b/groups/LimaEm/index.html index 31586eb..c4b5d52 100644 --- a/groups/LimaEm/index.html +++ b/groups/LimaEm/index.html @@ -1,15 +1,19 @@  + Group 07 – LIMA EM | Informatika UNTAN + - + - + @@ -1139,20 +1171,1004 @@ -
-
-
- Tugas Halaman Statis -

Kehidupan Mahasiswa & Himpunan (HMIF)

-

Kelompok 07 — LIMA EM  ·  Informatika UNTAN 2026

-
-
- -

Tulis konten halaman kelompok di sini.

-

Subjudul

-

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

- -
+
+ +
+ + +
+ + Foto Kegiatan Mahasiswa + +
+
+ +
+ +
+ +
+ +
+ COMMUNITY & LEADERSHIP +
+ +

+ Kehidupan Mahasiswa & Himpunan (HMIF) +

+ +

+ Membangun ekosistem kolaboratif di mana teknologi bertemu dengan + kreativitas, membentuk calon pemimpin industri masa depan. +

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

+ Ruang Tumbuh Bagi
Mahasiswa Informatika +

+ + +
+

+ Himpunan Mahasiswa Informatika (HMIF) Universitas Tanjungpura bukan sekadar + organisasi, melainkan rumah bagi para pemimpin teknologi. Kami percaya bahwa + pendidikan formal adalah fondasi, namun komunitas adalah akselerator. +

+

+ Melalui berbagai inisiatif, kami menjembatani kesenjangan antara kurikulum + akademik dan kebutuhan industri, sambil tetap menjaga semangat kekeluargaan + dan integritas ilmiah. +

+
+ + +
+
+

+ 518

+

+ Mahasiswa Aktif +

+
+
+

+ 8

+

+ MITRA +

+
+
+
+ + +
+ + +
+ + +
+ Ruang Tumbuh HMIF Universitas Tanjungpura + +
+
+
+ + +
+ +

+ Inklusivitas &
Kolaborasi +

+
+
+ +
+
+
+ + +
+
+

+ Partner dan Kolaborator +

+ +
+ + + Namaku + + + + + Sobat Konveksi + + + +
+ Ayani Megamall +
+ + +
+ Indofood +
+ + +
+ Playhera +
+ + +
+ PLN +
+ + +
+ RTech +
+ + +
+ Rumangsa +
+
+
+
+ + + +
+
+ +
+

+ Divisi Kepengurusan HMIF +

+

+ Struktur organisasi yang dirancang untuk efisiensi dan pengembangan kapasitas anggota di + berbagai + bidang strategis. +

+
+ + +
+ +
+ + Bidang 1 + +

+ Pengembangan Sumber Daya Mahasiswa dan Kaderisasi +

+

+ Divisi ini menyelenggarakan kaderisasi terstruktur, mentoring berkala, dan pelatihan + kepemimpinan serta soft-skill. Program kerja mencakup onboarding anggota baru, + workshop kepemimpinan, proyek kolaboratif, dan kegiatan pengabdian yang melatih + tanggung jawab sosial. Fokusnya adalah menyiapkan kader yang kompeten dan + menjaga regenerasi organisasi. +

+
+ + +
+ + Bidang 2 + +

+ Media Komunikasi dan Konten Digital +

+

+ Divisi ini mengelola strategi komunikasi dan produksi konten HMIF, termasuk + perencanaan editorial, manajemen media sosial, serta dokumentasi acara. Program + kerjanya meliputi pembuatan materi promosi, publikasi kegiatan, dan penguatan + identitas digital agar informasi organisasi tersampaikan konsisten dan menarik. +

+
+ + +
+ + Bidang 3 + +

+ Inovasi dan Kompetisi Teknologi +

+

+ Divisi ini memfasilitasi persiapan lomba dan pengembangan proyek teknis melalui + coaching clinic, bootcamp berbasis proyek, serta study club untuk Competitive + Programming, Software Development, dan Data/ML. Kegiatan termasuk seleksi internal, + bimbingan kompetitif, dan inisiatif digitalisasi seperti pengembangan website + dan dashboard untuk mendukung ekosistem inovasi HMIF. +

+
+ + +
+ + Bidang 4 + +

+ Pengembangan Organisasi +

+

+ Divisi ini memperkuat tata kelola dan kapabilitas internal melalui pelatihan + pengurus, penyusunan SOP sederhana, dan evaluasi proses kerja. Program kerjanya + mencakup pengembangan budaya organisasi, peningkatan efektivitas koordinasi, dan + kegiatan peningkatan profesionalisme sehingga operasi HMIF menjadi lebih terstruktur + dan efisien. +

+
+ + +
+ + Bidang 5 + +

+ Sosial Masyarakat +

+

+ Divisi ini merancang dan melaksanakan program pengabdian serta aksi sosial yang + berdampak, termasuk pendampingan komunitas dan bantuan kemanusiaan. Kegiatan + meliputi identifikasi kebutuhan lapangan, pelaksanaan terstruktur, dan evaluasi + dampak untuk memastikan keberlanjutan dan manfaat nyata bagi masyarakat. +

+
+ + +
+ + Bidang 6 + +

+ Kewirausahaan dan Kemitraan +

+

+ Divisi ini mengembangkan unit usaha organisasi, merancang skema pendanaan kreatif, + dan menjalin kemitraan strategis untuk mendukung keberlanjutan program HMIF. Unit + kerjanya meliputi riset peluang usaha, penyusunan proposal kemitraan, dan + pengelolaan sponsor untuk meningkatkan kemandirian finansial dan akses jaringan + profesional. +

+
+
+
+
+ + +
+
+ +
+

+ Kegiatan Unggulan +

+

+ Kegiatan tahunan yang menjadi ikon Informatika UNTAN. +

+
+ + +
+ + + + +
+ +
+ + +
+
+ Silaturahmi Keluarga Besar +
+
+
+ 27 + Feb +
+
+

+ Silaturahmi Keluarga Besar Informatika

+

Kegiatan buka + bersama + seluruh keluarga Informatika Untan yang selalu diadakan setiap tahunnya. +

+
+
+
+ + +
+
+ Bootcamp HMIF +
+
+
+ 1 + Jul +
+
+

+ GEMASTIK

+

Ajang + kompetisi IT bergengsi tingkat nasional tahunan dari kementerian. + Wadah bagi mahasiswa Informatika UNTAN untuk unjuk + gigi di bidang programming, cyber security, data + mining, hingga UI/UX. +

+
+
+
+ + +
+
+ Perayaan 17 Agustus +
+
+
+ 17 + Agu +
+
+

+ Perayaan 17 Agustus

+

Momen perayaan + Hari Kemerdekaan Indonesia yang diisi dengan berbagai perlombaan + menarik. + Ajang seru-seruan bersama untuk mempererat rasa nasionalisme dan + kekeluargaan mahasiswa Informatika.

+
+
+
+ + +
+
+ Bootcamp HMIF +
+
+
+ 28 + Agu +
+
+

+ Bootcamp HMIF

+

Program + intensif + pengembangan skill teknis mahasiswa Informatika bersama mentor + profesional dari + industri.

+
+
+
+ + +
+
+ UPC 2025 +
+
+
+ 20 + Okt +
+
+

+ UPC

+

Kompetisi + Pemograman untuk + mengasah skill coding mahasiswa Informatika.

+
+
+
+ + +
+
+ Study Excursion +
+
+
+ 20 + Okt +
+
+

+ Study Excursion

+

Study Excursion + menjadi pengalaman + berharga bagi mahasiswa semester 5 untuk belajar di luar kampus, + memperluas wawasan, + mengenal suasana baru, serta menciptakan kenangan berkesan bersama + selama perjalanan.

+
+
+
+ + +
+
+ Ultah Informatika +
+
+
+ 25 + Okt +
+
+

+ INFORMERS

+

Perayaan ulang + tahun + Informatika UNTAN, momen kebersamaan dan kebanggaan seluruh keluarga + besar + Informatika.

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

+ STUDY CLUB +

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

+ ARISE +

+

+ Belajar logika dan algoritma bersama, di mana kalian bisa berkembang dan membuka + peluang + mengikuti kompetisi pemrograman di berbagai level. +

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

+ MINERVA +

+

+ Gali potensi tersembunyi dari tumpukan data! Di sini kita akan bereksplorasi dengan + algoritma Machine Learning, membedah teknik klasifikasi, hingga melatih + model + prediktif untuk menghasilkan insight yang bermakna. +

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

+ Software Development (Soon) +

+

+ Wujudkan idemu jadi produk digital yang nyata! Kita akan ngoding bareng dari + merancang + frontend yang interaktif, membangun backend yang tangguh, serta + mengintegrasikan berbagai API untuk menciptakan aplikasi web masa kini. +

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

+ Galeri Keseruan +

+
+ + +
+ + + + + +
+ + +
+ + +
+
+ + + UPC V + + + + + + + +
+
+ + + + + + + +
+
+ + + + +
+ + +
+ + + +
+ +
+
+ + +
+
+
+ +
+
+
+
+ +
+
+

+ Ada yang Ingin Ditanyakan Seputar HMIF? +

+ +

+ Bergabunglah dengan HMIF untuk memperluas jaringan, mengasah skill, dan + menciptakan dampak nyata. +

+ + +
+ +
+
+
+

+ Sekretariat +

+

+ Gedung Fakultas Teknik Lt. 2
+ Jl. Prof. Dr. H. Hadari Nawawi +

+
+ +
+

+ Jam Operasional +

+

+ Senin - Jumat
+ 08:00 - 17:00 WIB +

+
+ +
+

+ Media Sosial +

+

+ @hmif_ftuntan
+

+
+
+
+
+
+
+
+
@@ -1215,11 +2231,249 @@
- Footer Illustration + Footer Illustration
+ + - + - + + \ No newline at end of file diff --git a/groups/LimaEm/style.css b/groups/LimaEm/style.css index 2bc5542..6a695df 100644 --- a/groups/LimaEm/style.css +++ b/groups/LimaEm/style.css @@ -1,4 +1,4 @@ -:root { +:root { --brand-navy: #003150; --brand-yellow: #feb401; --text-main: #1e293b; @@ -46,3 +46,25 @@ body { font-family: "Roboto", Arial, sans-serif; color: var(--text-main); backgr .footer-logo { height: 28px; width: auto; } .footer-ornament { width: 100%; display: block; opacity: .9; } +/* ===== Slider Dot Indicators ===== */ +.slider-dot, +.galeri-dot { + display: inline-block; + height: 10px; + width: 10px; + min-width: 10px; + border-radius: 9999px; + background-color: #d1d5db; /* gray-300 fallback */ + cursor: pointer; + border: none; + padding: 0; + transition: width 0.3s ease, background-color 0.3s ease; + flex-shrink: 0; +} + +.slider-dot.bg-hmif-primary, +.galeri-dot.bg-hmif-primary { + background-color: #0b2f4c; /* --color-hmif-primary dari output.css */ + width: 24px; +} + diff --git a/package-lock.json b/package-lock.json index a16578c..43e70d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -917,7 +917,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" },