*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}
:root{
    --ink:#1B2A4A;
    --ink-soft:#5A6B8C;
    --highlighter:#FFD23F;
    --coral:#FF6F59;
    --coral-hover:#E85A45;
    --teal:#2EC4B6;
    --paper:#EFF3F8;
    --white:#FFFFFF;
    --border:#C9D4E3;
    --font-display:"Space Grotesk",sans-serif;
    --font-body:"Inter",sans-serif;
    --font-mono:"IBM Plex Mono",monospace;
    --radius-sm:5px;
    --radius-md:6px;
    --radius-lg:8px;
    --shadow-sm:6px 6px 0 rgba(27,42,74,.06);
    --shadow-md:8px 8px 0 rgba(27,42,74,.1);
    --container-width:1200px;
}
html{
    scroll-behavior:smooth;
}
body{
    font-family:var(--font-body);
    background-color:var(--paper);
    background-image:
        linear-gradient(var(--border) 1px, transparent 1px),
        linear-gradient(90deg, var(--border) 1px, transparent 1px);
    background-size:28px 28px;
    color:var(--ink);
    line-height:1.6;
}
img{
    max-width:100%;
    display:block;
}
a{
    text-decoration:none;
    color:inherit;
}
ul{
    list-style:none;
}
.container{
    width:90%;
    max-width:var(--container-width);
    margin:auto;
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:14px 28px;
    border-radius:var(--radius-sm);
    cursor:pointer;
    transition:transform .12s, box-shadow .12s;
    font-weight:600;
    font-family:var(--font-display);
    border:none;
}
.btn-primary{
    background:var(--coral);
    color:var(--white);
}
.btn-primary:hover{
    background:var(--coral-hover);
    transform:translateY(-2px);
    box-shadow:3px 4px 0 rgba(27,42,74,.15);
}
nav{
    background:var(--white);
    border-bottom:1px solid var(--border);
    box-shadow:none;
}
nav .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px 0;
}
.logo{
    font-family:var(--font-display);
    font-size:1.7rem;
    font-weight:700;
    color:var(--ink);
}
.nav-links{
    display:flex;
    gap: 32px;
}
.nav-links a{
    color:var(--ink-soft);
    font-weight:500;
    font-family:var(--font-body);
    transition:color 0.2s ease;
}
.nav-links a:hover{
    color:var(--coral);
}
.hero{
    padding:80px 0;
}
.hero .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:60px;
}
.hero-content{
    flex:1;
}
.hero-badge{
    display:inline-block;
    background:var(--white);
    border:1px solid var(--border);
    color:var(--ink-soft);
    padding:8px 16px;
    border-radius:999px;
    font-family:var(--font-mono);
    font-size:.75rem;
    letter-spacing:.03em;
    margin-bottom:20px;
}
.hero-content h1{
    font-family:var(--font-display);
    font-size:3.2rem;
    font-weight:700;
    letter-spacing:-0.01em;
    line-height:1.15;
    margin-bottom:24px;
}
.hero-content p{
    color:var(--ink-soft);
    font-family:var(--font-body);
    font-size:1.1rem;
    margin-bottom:32px;
    max-width:550px;
}
.hero-buttons{
    display:flex;
    gap:20px;
    margin-bottom:32px;
}
.btn-outline{
    border:2px solid var(--ink);
    color:var(--ink);
    background:transparent;
}
.btn-outline:hover{
    background:var(--ink);
    color:var(--white);
}
.hero-rating{
    font-family:var(--font-mono);
    font-size:.85rem;
    color:var(--ink-soft);
}
.hero-image{
    flex:1;
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-md);
    padding:30px;
    min-height:400px;
}
/*DASHBOARD*/
.dashboard{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:28px;
    box-shadow:var(--shadow-md);
    transition:transform .2s ease;
}
.dashboard:hover{
    transform:translate(-3px,-3px);
    box-shadow:11px 11px 0 rgba(27,42,74,.1);
}
.dashboard-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:30px;
}

.dashboard-header h3{
    font-size:1.3rem;
}

.dashboard-header span{
    font-size:1.3rem;
    cursor:pointer;
}
.dashboard-body h4{
    margin-bottom:20px;
    color:var(--ink-soft);
}
.task{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--border);
}
.progress-section{
    margin-top:28px;
}
.progress-info{
    display:flex;
    justify-content:space-between;
    margin-bottom:12px;
    font-weight:600;
}
.progress-bar{
    width:100%;
    height:10px;
    background:#E5E7EB;
    border-radius:999px;
    overflow:hidden;
}
.progress-fill{
    background:var(--coral);
}
.streak{
    background:rgba(255,210,63,.25);
    color:var(--ink);
    border:1px dashed var(--highlighter);
}
.deadline{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:24px;
    padding:18px;
    background:#F8FAFC;
    border-radius:var(--radius-sm);
}

/*FEATURES*/

.features{
    background:var(--paper);
}
.section-title{
    text-align:center;
    margin-bottom:60px;
}
.section-title h2{
    font-family:var(--font-display);
    font-weight:700;
}
.section-title p{
    max-width:650px;
    margin:0 auto;
    color:var(--ink-soft);
    font-size:1.1rem;
}
.features-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}
.feature-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-sm);
    padding:0 0 24px;
    overflow:hidden;
    transition:transform .15s ease, box-shadow .15s ease;
}
.feature-card:hover{
    transform:translate(-3px,-3px);
    box-shadow:9px 9px 0 rgba(27,42,74,.1);
}
.feature-icon{
    background:rgba(255,111,89,.12);
    padding:14px 24px;
    border-radius:var(--radius-sm);
}
.feature-card h3{
    margin:18px 24px 10px;
    margin-bottom:16px;
    font-size:1.3rem;
}
.feature-card p{
    margin:0 24px;
    color:var(--ink-soft);
    line-height:1.7;
}
a.feature-card{
    display:block;
    text-decoration:none;
    color:inherit;
}

/*HOW IT WORKS*/

.how-it-works{
    padding:100px 0;
    background:var(--white);
}
.steps{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:30px;
}
.step-card{
    flex:1;
    text-align:center;
    padding:30px 20px;
    position:relative;
}
.step-icon{
    background:var(--white);
    border:2px solid var(--ink);
    border-radius:50%;
}
.step-card h3{
    margin-bottom:15px;
    font-size:1.3rem;
}
.step-card p{
    color:var(--ink-soft);
    line-height:1.7;
}
.step-card::after{
    background:var(--border);
    height:1px;
}
.step-card:last-child::after{
    display:none;
}
.step-card:hover .step-icon{
    transform:scale(1.1);
    transition:0.3s ease;
}
/* STATISTICS*/
.stats{
    padding:100px 0;
    background:#F8FAFC;
}
.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}
.stat-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-sm);
    padding:24px 20px;
}
.stat-card:hover{
    transform:translate(-3px,-3px) scale(1);
    box-shadow:9px 9px 0 rgba(27,42,74,.1);
}
.stat-card h3{
    font-family:var(--font-mono);
    color:var(--coral);
    margin-bottom:10px;
}
.stat-card p{
    color:var(--ink-soft);
    font-size:1rem;
    margin:0;
    padding:0 8px;
}
/*FAQ*/
.faq{
    padding:100px 0;
    background:white;
}
.faq-container{
    max-width:850px;
    margin:auto;
    background:white;
}
.faq-item{
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    box-shadow:none;
}
.faq-question{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:25px;
    cursor:pointer;
}
.faq-question h3{
    font-size:1.2rem;
}
.faq-question span{
    color:var(--coral);
}
.faq-answer{
    max-height:0;
    overflow:hidden;
    transition:max-height .4s ease;
}
.faq-answer p{
    padding:0 25px 25px;
    color:var(--ink-soft);
    line-height:1.7;
}
.faq-item.active .faq-answer{
    max-height:200px;
}
.faq-item.active span{
    transform:rotate(45deg);
}
.faq-item:hover{
    transform:translateY(-3px);
    transition:.3s;
}
.faq-item.active{
    border-left:4px solid var(--coral);
    background:var(--paper);
}
/* Dashboard Preview Footer */
.dashboard-footer{
    margin-top:25px;
    padding-top:20px;
    border-top:1px solid #e5e7eb;
    text-align:center;
}
.dashboard-btn{
    display:inline-block;
    color:var(--coral);
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}
.dashboard-btn:hover{
    transform:translateX(6px);
}
/* ==========================
   CONTACT
========================== */
.contact{
    background:var(--paper);
    padding-bottom:100px;
}
.contact-container{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:50px;
    margin-top:50px;
    padding:0 4px;
}
.contact-form form{
    padding:8px 4px;
    display:flex;
    flex-direction:column;
    gap:20px;
}
.contact-form .btn-primary{
    margin-top:8px;
    padding:14px 32px;
}
.contact-form button[type="submit"]{
    padding:14px 32px;
    margin-top:6px;
}
.contact-form input,
.contact-form textarea{
    padding:14px 16px;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    font-family:var(--font-body);
    background:var(--white);
}
.contact-form input:focus,
.contact-form textarea:focus{
    border-color:var(--coral);
    box-shadow:0 0 0 3px rgba(255,111,89,.15);
}
.contact-info{
    padding:28px 30px;
    background:var(--white);
    border:1px solid var(--border);
    box-shadow:var(--shadow-sm);
}
.contact-info h3{
    margin-bottom:25px;
}
.info-box{
    padding:0 2px;
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:25px;
}
.info-box svg.icon{
  width:22px;
  height:22px;
  flex-shrink:0;
}
.info-box span{
    font-size:1.5rem;
}
.info-box p{
    margin:0;
    padding-left:2px;
    margin-left:2px;
    color:var(--ink-soft);
}
/* ==========================
   FOOTER
========================== */
.footer{
    background:var(--ink);
}
.footer-container{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:50px;
}
.footer h2,
.footer h3{
    margin-bottom:20px;
}
.footer p{
    color:#d1d5db;
    line-height:1.8;
}
.footer-links ul{
    list-style:none;
    padding:0;
}
.footer-links li{
    margin-bottom:12px;
}
.footer-links a{
    color:#d1d5db;
    text-decoration:none;
    transition:.3s;
}
.footer-links a:hover{
    color:#fff;
}
.social-icons{
    display:flex;
    gap:15px;
    font-size:1.5rem;
}
.social-icons a{
    text-decoration:none;
    transition:.3s;
}
.footer-bottom{
    border-top:1px solid rgba(255,255,255,.1);
    margin-top:40px;
    padding-top:20px;
    text-align:center;
    color:#9ca3af;
}
.social-icons a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:45px;
    height:45px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    transition:.3s;
}
.social-icons a:hover{
    background:var(--coral);
    transform:translateY(-5px);
}
.menu-toggle{
    display:none;
    font-size:2rem;
    cursor:pointer;
}
.icon{
    width:1em;
    height:1em;
    stroke:currentColor;
    stroke-width:2;
    fill:none;
    vertical-align:-0.15em;
    margin-right:8px;
}
.icon-accent{ color:var(--coral); }
.icon-teal{ color:var(--teal); }
.icon-highlighter{ color:var(--highlighter);
}
.features,
.how-it-works,
.stats,
.faq,
.contact{
    background-color:var(--paper);
    background-image:
        linear-gradient(var(--border) 1px, transparent 1px),
        linear-gradient(90deg, var(--border) 1px, transparent 1px);
    background-size:28px 28px;
}