:root { --primary: #586af5; --primary-dark: #4c5ae8; --danger: #f35625; --neutral: #1b1d21; --muted: #4f4f4f; --white: #ffffff; } /* reset browser styles */ * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } /* global styles */ body { font-family: "DM Sans", sans-serif; font-size: 1rem; line-height: 1.5; color: var(--muted); } body.no-scroll { overflow: hidden; } header { position: sticky; top: 0; z-index: 2; } img { vertical-align: middle; } button:not(:disabled) { cursor: pointer; } aside { position: fixed; z-index: 3; top: 0; right: -100%; width: 100%; min-height: 100vh; background-color: var(--white); display: flex; flex-direction: column; align-items: center; justify-content: center; transition: right 0.2s ease-in-out; } aside.show { right: 0; } aside button { position: absolute; top: 1rem; right: 1rem; padding: 0; width: 2rem; height: 2rem; background-color: var(--white); border: 1px solid var(--muted); border-radius: 0.25rem; transition: all 0.15s ease-in-out; } aside button:hover, aside button:focus, aside button:active { background-color: var(--muted); color: var(--white); } aside nav { display: flex; flex-direction: column; row-gap: 1.5rem; align-items: center; } aside nav a { font-size: 1.5rem; font-weight: 600; text-decoration: none; color: var(--neutral); transition: color 0.15s ease-in-out; } aside nav a:hover, aside nav a:focus, aside nav a:active { color: var(--primary); } .container { max-width: 1280px; margin-inline: auto; padding-inline: 1rem; } .button { display: inline-block; font-weight: 600; vertical-align: middle; text-align: center; padding: 0.5rem 1.25rem; border-radius: 0.5rem; background-color: var(--primary); color: var(--white); text-decoration: none; transition: background-color 0.15s ease-in-out; border: 0; } .button:hover, .button:focus, .button:active { background-color: var(--primary-dark); } .button.disabled, .button:disabled { opacity: 0.5; cursor: not-allowed; } .title { /* calculate font size base on vw, desktop size is 3rem */ font-size: calc(1.5rem + 1.5vw); color: var(--neutral); } .section { padding-block: 3.75rem; } .scroll-to-top { position: fixed; z-index: 1; bottom: -100%; right: 2rem; width: 3rem; height: 3rem; border-radius: 50%; padding: 0; transition: bottom 0.4s ease-in-out, background-color 0.15s ease-in-out; } .scroll-to-top.show { bottom: 2rem; } .navbar { --navbar-height: 6rem; background-color: rgba(255, 255, 255, 0.75); height: var(--navbar-height); backdrop-filter: blur(10px); border-bottom: 1px solid var(--white); box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05); } .navbar.scrolled { border-bottom-color: rgba(0, 0, 0, 0.05); } .navbar .container { display: flex; align-items: center; height: 100%; column-gap: 1rem; } .navbar-brand { flex-shrink: 0; width: 124px; } .navbar-toggle { margin-left: auto; padding-inline: 0.75rem; } .navbar-menu { display: none; } .navbar-menu-list { margin-left: auto; display: flex; align-items: center; list-style: none; column-gap: 4rem; } .navbar-menu-list li a { font-weight: 600; text-decoration: none; } .navbar-menu-list li a { color: inherit; } .navbar-menu-list li a:hover, .navbar-menu-list li a:focus .navbar-menu-list li a:active { color: var(--primary); } .navbar-menu-action { width: 124px; display: flex; justify-content: end; margin-left: auto; } .hero { padding-top: 7.5rem; } .hero > .container { display: grid; grid-template-columns: 1fr; column-gap: 1rem; } .hero-text { text-align: center; } .hero-title { margin-bottom: 1.5rem; } .hero-title span { color: var(--primary); } .hero-desc { width: min(100%, 50rem); font-size: 1.25rem; margin-bottom: 1.5rem; margin-inline: auto; } .hero-cta { padding-block: 0.75rem; display: inline-flex; align-items: center; column-gap: 0.75rem; } .hero-illustration { display: none; } .hero-illustration img { display: block; max-width: 100%; } .feature-title, .feature-subtitle, .feature-desc { text-align: center; } .feature-title { font-size: 1.125rem; font-weight: 600; /* margin-bottom: 0.75rem; */ color: var(--primary); } .feature-subtitle { margin-bottom: 1.5rem; } .feature-desc { width: min(100%, 50rem); font-size: 1.25rem; margin-bottom: 1.5rem; margin-inline: auto; } .feature-map { position: relative; width: 100%; height: 480px; margin-bottom: 7.5rem; } .feature-map-legend { --proses: var(--primary); --tindak-lanjut: #ffab00; --perbaikan: var(--danger); list-style: none; position: absolute; top: 1rem; left: 1rem; z-index: 1; background-color: rgba(255, 255, 255, 0.75); padding: 1rem; border-radius: 0.5rem; font-weight: 500; display: flex; flex-direction: column; row-gap: 0.5rem; } .feature-map-legend li { position: relative; display: flex; align-items: center; column-gap: 0.5rem; } .feature-map-legend li::before { content: ""; display: block; width: 0.5rem; height: 0.5rem; border-radius: 50%; } .feature-map-legend li:nth-child(1)::before { background-color: var(--proses); } .feature-map-legend li:nth-child(2)::before { background-color: var(--tindak-lanjut); } .feature-map-legend li:nth-child(3)::before { background-color: var(--perbaikan); } .feature-map-canvas { position: absolute; top: 0; left: 0; z-index: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.1); border-radius: 0.75rem; } .feature-list { list-style: none; display: grid; grid-template-columns: 1fr; gap: 2rem; } .feature-list li { padding: 1.5rem 1.5rem 0 1.5rem; display: flex; flex-direction: column; align-items: center; text-align: center; } .feature-list li img { display: block; max-width: 100%; transition: transform 0.15s ease-in-out; } .feature-list li h6 { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.5rem; } .feature-list li p { width: min(100%, 20rem); } .feature-list li:hover img { transform: scale(1.05); } .app-title { text-align: center; margin-bottom: 4.5rem; } .app-content { display: grid; grid-template-columns: 1fr; gap: 3rem; } .app-illustration img { display: block; max-width: 100%; margin-inline: auto; } .app-features { list-style: none; display: flex; flex-direction: column; row-gap: 2.5rem; } .app-features li { display: flex; align-items: flex-start; column-gap: 1rem; } .app-features li h6 { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.5rem; } .dashboard-title { text-align: center; margin-bottom: 2.5rem; } .dashboard-silder { position: relative; /* overflow: hidden; */ } .dashboard-item { display: grid; grid-template-columns: 1fr; gap: 1rem; transition: opacity 0.5s ease-in-out; } .dashboard-item:not(.active) { opacity: 0; display: none; } .dashboard-item-text { display: flex; flex-direction: column; justify-content: center; align-items: center; row-gap: 0.875rem; text-align: center; } .dashboard-item-text h6 { font-size: 1.5rem; font-weight: 600; } .dashboard-item img { display: block; max-width: 100%; } .dashboard-nav { display: flex; align-items: center; justify-content: center; column-gap: 1rem; } .dashboard-nav button { padding: 0; display: block; width: 0.75rem; height: 0.75rem; border-radius: 50%; background-color: var(--muted); transition: background-color 0.15s ease-in-out; } .dashboard-nav button.active { background-color: var(--primary); } .cta-content { display: grid; grid-template-columns: 1fr; border-radius: 1rem; overflow: hidden; } .cta-text { background-color: var(--primary); color: var(--white); padding: 2.5rem; display: flex; flex-direction: column; row-gap: 1.5rem; } .cta-text h1 { color: inherit; font-weight: 500; } .cta-text a { margin-top: auto; display: inline-flex; align-items: center; column-gap: 0.75rem; text-decoration: none; color: inherit; font-weight: 600; } .cta-illustration { position: relative; display: none; } .cta-illustration img { width: 100%; height: 100%; object-fit: cover; } .cta-illustration p { position: absolute; bottom: 0.5rem; right: 0.5rem; font-size: 0.5rem; color: var(--white); background-color: rgba(0, 0, 0, 0.5); padding: 0.15rem 0.25rem; } .cta-illustration p a { color: inherit; text-decoration: underline; } footer { padding-top: 5rem; } .footer-content { display: grid; grid-template-columns: 1fr; gap: 2.5rem; margin-bottom: 2.75rem; } .footer-about, .footer-collab, .footer-contact { text-align: center; display: flex; flex-direction: column; align-items: center; } .footer-about > a { display: inline-block; margin-bottom: 2rem; } .footer-about p { width: min(100%, 280px); margin-bottom: 3rem; } .footer-about ul { list-style: none; display: flex; align-items: center; gap: 1rem; } .footer-collab h6, .footer-contact h6 { font-size: 1.5rem; margin-bottom: 2rem; } .footer-collab ul { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; } .footer-contact > p:not(:last-child) { margin-bottom: 1rem; } .footer-copy { text-align: center; font-size: 0.75rem; } @media screen and (min-width: 576px) { .feature-list { grid-template-columns: 1fr 1fr; } .feature-list li { display: block; text-align: left; } } @media screen and (min-width: 768px) { .navbar-menu { display: flex; align-items: center; flex-grow: 1; column-gap: 1rem; } .navbar-toggle { display: none; } aside { display: none; } .app-content { grid-template-columns: 1fr 1fr; } .dashboard-item-text { text-align: left; align-items: flex-start; } .dashboard-item { grid-template-columns: auto 60%; } .cta-content { grid-template-columns: 1fr 1fr; } .cta-illustration { display: block; } .footer-content { grid-template-columns: 1fr 1fr 1fr; } .footer-about, .footer-collab, .footer-contact { text-align: left; display: flex; flex-direction: column; align-items: flex-start; } } @media screen and (min-width: 992px) { .hero > .container { grid-template-columns: 1fr 1fr; } .hero-text { text-align: left; } .hero-desc { width: min(100%, 35rem); margin-inline: 0; } .hero-illustration { display: block; } .feature-list { grid-template-columns: 1fr 1fr 1fr; } .app-content { align-items: center; } .dashboard-item { grid-template-columns: auto 65%; } } @media screen and (min-width: 1200px) { .title { font-size: 3rem; line-height: 1.2; } .cta-text h1 { font-size: 2.55rem; } }