* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
    background: linear-gradient(to bottom, #081008, #0d1d10, #050805);
    color: #f4f4f4;
    overflow-x: hidden;
}

a {
    text-decoration: none;
}

.leaf-background {
    position: fixed;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

.leaf {
    position: absolute;
    width: 70px;
    height: 70px;
    opacity: 0.10;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    animation-name: floatLeaf;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    filter: drop-shadow(0 0 10px rgba(70, 160, 80, 0.15));
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path fill='%2368d27f' d='M258 40c-17 47-22 87-19 122-30-37-72-72-126-102 14 57 39 106 75 145-39-17-85-26-137-27 34 45 74 79 120 103-44 1-89 12-135 34 52 21 101 31 148 29-43 28-80 67-111 119 58-5 108-23 150-54-23 42-35 91-37 148 46-36 79-77 100-124 11 51 33 100 66 147 33-47 55-96 66-147 21 47 54 88 100 124-2-57-14-106-37-148 42 31 92 49 150 54-31-52-68-91-111-119 47 2 96-8 148-29-46-22-91-33-135-34 46-24 86-58 120-103-52 1-98 10-137 27 36-39 61-88 75-145-54 30-96 65-126 102 3-35-2-75-19-122z'/></svg>");
}

.leaf-1  { left: 2%;  top: 8%;  animation-duration: 9s;  transform: rotate(-8deg); }
.leaf-2  { left: 10%; top: 55%; animation-duration: 11s; transform: rotate(12deg); }
.leaf-3  { left: 18%; top: 25%; animation-duration: 10s; transform: rotate(-12deg); }
.leaf-4  { left: 27%; top: 72%; animation-duration: 12s; transform: rotate(7deg); }
.leaf-5  { left: 35%; top: 12%; animation-duration: 9.5s; transform: rotate(-5deg); }
.leaf-6  { left: 43%; top: 48%; animation-duration: 10.5s; transform: rotate(15deg); }
.leaf-7  { left: 52%; top: 78%; animation-duration: 11.5s; transform: rotate(-10deg); }
.leaf-8  { left: 60%; top: 18%; animation-duration: 9.8s; transform: rotate(8deg); }
.leaf-9  { left: 68%; top: 60%; animation-duration: 10.8s; transform: rotate(-14deg); }
.leaf-10 { left: 76%; top: 10%; animation-duration: 9.2s; transform: rotate(9deg); }
.leaf-11 { left: 84%; top: 42%; animation-duration: 11.2s; transform: rotate(-9deg); }
.leaf-12 { left: 92%; top: 74%; animation-duration: 12.2s; transform: rotate(11deg); }
.leaf-13 { left: 6%;  top: 84%; animation-duration: 10.4s; transform: rotate(-6deg); }
.leaf-14 { left: 24%; top: 50%; animation-duration: 9.7s; transform: rotate(14deg); }
.leaf-15 { left: 49%; top: 30%; animation-duration: 10.1s; transform: rotate(-11deg); }
.leaf-16 { left: 88%; top: 16%; animation-duration: 9.9s; transform: rotate(6deg); }

@keyframes floatLeaf {
    0% {
        transform: translateY(0px) translateX(0px) rotate(0deg) scale(1);
    }
    25% {
        transform: translateY(-22px) translateX(12px) rotate(6deg) scale(1.03);
    }
    50% {
        transform: translateY(-10px) translateX(-10px) rotate(-6deg) scale(0.98);
    }
    75% {
        transform: translateY(-28px) translateX(15px) rotate(8deg) scale(1.02);
    }
    100% {
        transform: translateY(0px) translateX(0px) rotate(0deg) scale(1);
    }
}

.announcement-wrap,
.topbar,
.hero,
.admin-panel,
.login-body {
    position: relative;
    z-index: 2;
}

.announcement-wrap {
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 12px;
    background: rgba(13, 52, 23, 0.92);
    border-bottom: 1px solid rgba(78, 140, 88, 0.35);
    backdrop-filter: blur(8px);
}

.announcement-bar {
    max-width: 1200px;
    margin: 0 auto 8px auto;
    padding: 12px;
    border-radius: 12px;
    background: rgba(44, 99, 56, 0.45);
    text-align: center;
}

.topbar {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.logo,
.profile-image {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    object-fit: cover;
    flex-shrink: 0;
}

.logo {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(88, 190, 109, 0.2);
    font-weight: bold;
    font-size: 18px;
}

.profile-image {
    border: 2px solid rgba(88, 190, 109, 0.35);
    box-shadow: 0 0 20px rgba(50, 140, 67, 0.25);
}

.brand h2 {
    margin: 0;
}

.brand p {
    margin: 4px 0 0 0;
    font-size: 14px;
    color: #bbbbbb;
}

.hero {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 16px 60px;
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 28px;
}

.hero-left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 65vh;
}

.hero-left h1 {
    font-size: 54px;
    margin: 18px 0 14px;
}

.hero-left p {
    font-size: 18px;
    color: #d5d5d5;
    line-height: 1.6;
    max-width: 700px;
}

.badge {
    display: inline-block;
    width: fit-content;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(76, 160, 88, 0.16);
    border: 1px solid rgba(94, 194, 106, 0.35);
    color: #d3ffd9;
    font-size: 14px;
    backdrop-filter: blur(6px);
}

.socials {
    margin-top: 24px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.social-btn,
.admin-toggle,
.primary-btn,
.secondary-btn,
.danger-btn,
.danger-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: none;
    padding: 12px 18px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    transition: 0.25s ease;
}

.social-btn,
.primary-btn {
    background: #2f8d45;
    color: #fff;
}

.social-btn:hover,
.primary-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(47, 141, 69, 0.28);
}

.admin-toggle,
.secondary-btn {
    background: #ececec;
    color: #111;
}

.danger-btn,
.danger-link {
    background: #a83939;
    color: #fff;
}

.social-icon {
    font-size: 18px;
    line-height: 1;
}

.card {
    background: rgba(11, 11, 11, 0.62);
    border: 1px solid rgba(65, 105, 73, 0.45);
    border-radius: 24px;
    padding: 24px;
    backdrop-filter: blur(10px);
}

.hero-right h3,
.admin-panel h3 {
    margin-top: 0;
}

.admin-panel {
    max-width: 1200px;
    margin: 0 auto;
    padding: 10px 16px 60px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

.full-width {
    width: 100%;
}

.admin-panel label,
.login-card label {
    display: block;
    margin: 14px 0 6px;
    color: #d0d0d0;
    font-size: 14px;
}

.admin-panel input,
.admin-panel textarea,
.login-card input {
    width: 100%;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid #3b3b3b;
    background: #151515;
    color: #fff;
}

input[type="file"] {
    padding: 10px;
}

.announcement-editor {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    margin-bottom: 12px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(26, 26, 26, 0.85);
}

.checkbox-wrap {
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    white-space: nowrap;
}

.checkbox-wrap input {
    width: auto;
}

.simple-check {
    margin-top: 12px !important;
}

.admin-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.button-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.login-card {
    width: 100%;
    max-width: 420px;
    background: rgba(11, 11, 11, 0.72);
    border: 1px solid rgba(65, 105, 73, 0.45);
    border-radius: 24px;
    padding: 28px;
    backdrop-filter: blur(10px);
}

.error-box {
    margin-bottom: 14px;
    background: rgba(168, 57, 57, 0.18);
    border: 1px solid rgba(168, 57, 57, 0.45);
    color: #ffd5d5;
    padding: 12px;
    border-radius: 12px;
}

.success-box {
    margin-bottom: 14px;
    background: rgba(47, 141, 69, 0.18);
    border: 1px solid rgba(47, 141, 69, 0.45);
    color: #d7ffd9;
    padding: 12px;
    border-radius: 12px;
}

.image-preview-wrap {
    margin: 8px 0 14px;
}

.image-preview {
    width: 100px;
    height: 100px;
    border-radius: 18px;
    object-fit: cover;
    border: 2px solid rgba(88, 190, 109, 0.35);
}

@media (max-width: 900px) {
    .hero {
        grid-template-columns: 1fr;
    }

    .hero-left h1 {
        font-size: 38px;
    }

    .topbar {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .announcement-editor {
        grid-template-columns: 1fr;
    }

    .button-row {
        flex-direction: column;
    }

    .leaf {
        width: 52px;
        height: 52px;
    }
}