/* styles.css
Mobile-first responsive design
Color theme primary: #178AAD
*/
/* ========== Variables & Base ========== */
:root {
--primary: #178AAD;
--bg: #ffffff;
--muted: #6b7280;
--radius: 12px;
--container: 1100px;
--max-width: 1200px;
--glass: rgba(23, 138, 173, 0.08);
--card-shadow: 0 6px 24px rgba(16, 24, 40, 0.06);
--gap: 16px;
--accent-700: #0f6f85;
--transition: 200ms ease;
font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
color-scheme: light;
}
:root {
--bg: #ffffff;
--text: #111;
--card: #ffffff;
--border: #eee;
}
body.dark {
--bg: #0f172a;
--text: #e5e7eb;
--card: #1e293b;
--border: #334155;
}
* {
box-sizing: border-box
}
html,
body {
height: 100%
}
body {
margin: 0;
font-size: 16px;
color: #111827;
background: var(--bg);
color: var(--text);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
line-height: 1.45;
display:flex;
flex-direction:column;
min-height:100vh;
}

main{
flex:1;
}
/* Simple container */
.container {
width: calc(100% - 32px);
max-width: var(--container);
margin: 0 auto;
padding: 24px 16px;
}
.theme-toggle {
border: none;
background: transparent;
font-size: 20px;
cursor: pointer;
padding: 6px;
}
/* ========== Header ========== */
.site-header {
position: sticky;
top: 0;
z-index: 40;
background: var(--bg);
border-bottom: 1px solid rgba(23, 138, 173, 0.06);
backdrop-filter: blur(6px);
}
.header-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
color: inherit
}
.logo .logo-text {
font-weight: 700
}
.logo.small .logo-text {
display: inline-block;
margin-left: 8px;
font-weight: 600
}
/* Nav */
.nav {
display: flex;
align-items: center;
gap: 12px
}
.hamburger {
display: inline-grid;
place-items: center;
border: 0;
background: transparent;
padding: 8px;
cursor: pointer
}
.hamburger span {
display: block;
width: 22px;
height: 2px;
background: #111;
border-radius: 2px;
transition: transform var(--transition)
}
.hamburger span+span {
margin-top: 5px
}
.nav-list {
display: none;
list-style: none;
padding: 0;
margin: 0;
gap: 12px
}
.nav-list li a {
display: block;
padding: 10px 8px;
border-radius: 8px;
text-decoration: none;
color: inherit;
font-weight: 500
}
.nav-list li a:hover {
background: var(--glass)
}
/* ========== Hero ========== */
.hero {
display: grid;
grid-template-columns: 1fr;
gap: 20px;
align-items: center;
padding-top: 36px;
padding-bottom: 28px;
}
.hero-title {
font-size: 1.6rem;
margin: 0 0 8px
}
.hero-desc {
margin: 0 0 16px;
color: var(--muted)
}
.hero-cta {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-bottom: 12px
}
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 2px 2px;
border-radius: 10px;
text-decoration: none;
font-weight: 600;
border: 1px solid transparent
}
.btn-primary {
background: var(--card);
color: #fff;
box-shadow: var(--card-shadow);
transition: transform var(--transition)
}
.btn-outline {
background: transparent;
border-color: rgba(23, 138, 173, 0.12);
color: var(--primary);
}
.btn:hover {
transform: translateY(-3px)
}
.download-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
}
.download-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 144px;
height: 48px;
padding: 0;
border: 0;
border-radius: 8px;
background: transparent;
text-decoration: none;
overflow: hidden;
transition: transform var(--transition), box-shadow var(--transition);
}
.download-badge {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
}
.download-btn:hover {
transform: translateY(-2px);
box-shadow: 0 10px 26px rgba(16, 24, 40, 0.12);
}
/* hero stats */
.hero-stats {
display: flex;
gap: 12px;
margin-top: 8px;
padding: 0;
list-style: none;
color: var(--muted)
}
.hero-stats li strong {
display: block;
color: var(--muted)
}
;
font-weight:700
}
/* phone mockup & carousel */
.phone-mockup {
width: 300px;
max-width: 46vw;
margin: 0 auto
}
.carousel {
position: relative;
padding-top: 2%;
border-radius: 28px;
background: linear-gradient(180deg, #fff, #f7fafd);
box-shadow: var(--card-shadow);
overflow: hidden
}
.carousel img {
display: block;
width: 100%;
height: auto;
opacity: 0;
transform: translateY(6px);
transition: opacity 300ms, transform 400ms
}
.carousel img.active {
opacity: 1;
transform: translateY(0)
}
.carousel-controls {
display: flex;
justify-content: center;
gap: 8px;
padding: 8px
}
/* ========== Features ========== */
.features {
padding: 28px 0
}
.section-title {
font-size: 1.1rem;
margin-bottom: 12px;
color: var(--text);
}
.features-grid {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: 12px
}
.feature-card {
border-radius: 12px;
padding: 14px;
box-shadow: var(--card-shadow);
background: var(--card);
transition: transform var(--transition)
}
.feature-card:hover {
transform: translateY(-6px)
}
.feature-card .icon {
font-size: 1.4rem;
margin-bottom: 8px
}
/* Screenshots grid */
.screens-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12px
}
.screens-grid img {
width: 100%;
border-radius: 12px;
box-shadow: var(--card-shadow)
}
/* Benefits */
.benefits {
padding: 24px 0
}
.benefit-list {
list-style: disc;
margin-left: 20px;
color: var(--muted)
}
/* ========== Apps grid (apps.html) ========== */
.apps-grid {
display: grid;
grid-template-columns: 1fr;
gap: 14px;
padding-bottom: 40px
}
.app-card {
display: flex;
gap: 12px;
align-items: center;
padding: 12px;
border-radius: 12px;
background: var(--card);
box-shadow: var(--card-shadow);
transition: transform var(--transition)
}
.app-card:hover {
transform: translateY(-6px)
}
.app-card .icon {
width: 64px;
height: 64px;
border-radius: 14px;
background: linear-gradient(180deg, var(--primary), var(--accent-700));
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1.2rem
}
.app-card h3 {
margin: 0;
font-size: 1rem
}
.app-card p {
margin: 6px 0 0;
color: var(--muted);
font-size: 0.95rem
}
.app-card .actions {
margin-left: auto;
display: flex;
gap: 8px;
align-items: center
}
/* ========== App detail ========== */
.app-detail-main {
padding: 24px 0
}
.app-meta {
display: flex;
gap: 16px;
align-items: center
}
.app-meta .icon {
width: 80px;
height: 80px;
border-radius: 18px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1.4rem
}
.app-info h1 {
margin: 0;
font-size: 1.3rem
}
.app-screens {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 8px;
margin-top: 12px
}
.app-screens img {
width: 100%;
border-radius: 10px
}
/* ========== Footer ========== */
.site-footer {
border-top: 1px solid rgba(16, 24, 40, 0.04);
padding: 20px 0;
background: var(--card);
}
.footer-inner {
display: flex;
gap: 16px;
flex-wrap: wrap;
align-items: flex-start;
justify-content: space-between
}
/* ========== Reveal animation ========== */
.reveal {
opacity: 0;
transform: translateY(10px);
transition: opacity 420ms ease, transform 420ms ease
}
.reveal.visible {
opacity: 1;
transform: translateY(0)
}
/* ========== Responsive breakpoints ========== */
/* Tablet */
@media (min-width:720px) {
.hero {
grid-template-columns: 1fr 420px;
gap: 36px
}
.features-grid {
grid-template-columns: repeat(2, 1fr)
}
.screens-grid {
grid-template-columns: repeat(3, 1fr)
}
.apps-grid {
grid-template-columns: repeat(2, 1fr)
}
.nav-list {
display: flex
}
.hamburger {
display: none
}
}
/* Desktop */
@media (min-width:1100px) {
:root {
--container: 1100px
}
.features-grid {
grid-template-columns: repeat(4, 1fr)
}
.phone-mockup {
max-width: 360px
}
.app-screens {
grid-template-columns: repeat(4, 1fr)
}
.apps-grid {
grid-template-columns: repeat(3, 1fr)
}
}
/* small visual improvements */
a {
color: var(--primary)
}
/* Back button */
.btn-back{
display:inline-flex;
align-items:center;
gap:8px;
padding:10px 16px;
border-radius:10px;
background:var(--card);
border:1px solid var(--border);
text-decoration:none;
font-weight:500;
color:var(--text);
transition:all 0.2s ease;
box-shadow:0 2px 10px rgba(0,0,0,0.05);
}
.btn-back .arrow{
font-size:16px;
transition:transform 0.2s ease;
}
/* hover effect */
.btn-back:hover{
background:var(--primary);
color:white;
transform:translateY(-2px);
box-shadow:0 6px 20px rgba(0,0,0,0.15);
}
.btn-back:hover .arrow{
transform:translateX(-3px);
}
.apps-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:20px;
margin-top:20px;
}
.app-card{
display:flex;
gap:16px;
align-items:center;
padding:18px;
border-radius:12px;
background:var(--card);
box-shadow:0 4px 20px rgba(0,0,0,0.05);
transition:all .2s;
}
.app-card:hover{
transform:translateY(-4px);
box-shadow:0 10px 30px rgba(0,0,0,0.1);
}
.tech-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
gap:20px;
margin-top:20px;
}
.tech-card{
text-align:center;
padding:20px;
border-radius:14px;
background:var(--card);
box-shadow:0 4px 20px rgba(0,0,0,0.05);
transition:all .2s;
}
.tech-card i{
font-size:32px;
color:#178AAD;
margin-bottom:10px;
}
.tech-card:hover{
transform:translateY(-5px);
box-shadow:0 10px 30px rgba(0,0,0,0.1);
}
.product-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:24px;
margin-top:30px;
}
.product-card{
background:var(--card);
padding:24px;
border-radius:16px;
text-align:center;
box-shadow:0 6px 25px rgba(0,0,0,0.06);
transition:all .25s ease;
}
.product-card:hover{
transform:translateY(-6px);
box-shadow:0 12px 35px rgba(0,0,0,0.15);
}
.product-icon{
width:72px;
height:72px;
border-radius:18px;
margin-bottom:14px;
}
.product-card h3{
margin-bottom:8px;
}
.product-card p{
color:var(--text-muted);
font-size:14px;
margin-bottom:16px;
}
.product-btn{
display:inline-block;
padding:8px 16px;
border-radius:8px;
background:#178AAD;
color:white;
text-decoration:none;
font-size:14px;
transition:.2s;
}
.product-btn:hover{
background:#126f8c;
}
/* FOOTER */
.site-footer{
margin-top:80px;
background:#0f172a;
color:#cbd5e1;
padding:60px 20px 20px;
}
/* grid layout */
.footer-grid{
display:grid;
grid-template-columns:2fr 1fr 1fr 1fr;
gap:40px;
max-width:1100px;
margin:auto;
}
/* brand */
.footer-brand .logo{
display:flex;
align-items:center;
gap:10px;
font-weight:600;
color:white;
text-decoration:none;
margin-bottom:12px;
}
.footer-desc{
font-size:14px;
line-height:1.6;
color:#94a3b8;
margin-bottom:20px;
}
/* columns */
.footer-column h4{
color:white;
margin-bottom:14px;
font-size:15px;
}
.footer-column ul{
list-style:none;
padding:0;
margin:0;
}
.footer-column li{
margin-bottom:8px;
}
.footer-column a{
color:#94a3b8;
text-decoration:none;
font-size:14px;
transition:.2s;
}
.footer-column a:hover{
color:white;
}
/* email */
.footer-email{
display:inline-block;
margin-top:6px;
color:#38bdf8;
text-decoration:none;
}
.footer-email:hover{
text-decoration:underline;
}
/* social */
.social{
display:flex;
gap:12px;
}
.social a{
width:36px;
height:36px;
border-radius:8px;
display:flex;
align-items:center;
justify-content:center;
background:#1e293b;
color:white;
transition:.2s;
}
.social a:hover{
background:#178AAD;
transform:translateY(-2px);
}
/* bottom */
.footer-bottom{
border-top:1px solid #1e293b;
margin-top:40px;
padding-top:20px;
text-align:center;
font-size:13px;
color:#64748b;
}
/* responsive */
@media (max-width:768px){
.footer-grid{
grid-template-columns:1fr;
gap:30px;
}
}
