/* ===================================================== GROUP 05 — Alumni Informatika UNTAN style.css — clean, professional, navy + gold theme ===================================================== */ @import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap"); /* ── RESET & BASE ── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; font-size: 16px; } body, h1, h2, h3, h4, h5, .brand { font-family: "Roboto", Arial, sans-serif; } body { background: #fff; color: #111827; -webkit-font-smoothing: antialiased; overflow-x: hidden; } h1, h2, h3, h4, h5 { line-height: 1.15; } img { display: block; max-width: 100%; } a { color: inherit; text-decoration: none; } /* ── CSS VARIABLES ── */ :root { --navy: #1a3a6b; --brand-navy: #003150; --navy-mid: #2352a0; --navy-lt: #3b6cc7; --navy-ghost: #ebf1fb; --gold: #feb401; --gold-lt: #ffda5a; --gold-bg: #fffbea; --ink: #111827; --muted: #6b7280; --line: #e5e7eb; --cream: #f9fafb; --white: #ffffff; --radius-sm: 8px; --radius-md: 14px; --radius-lg: 20px; --radius-xl: 28px; --shadow-sm: 0 2px 8px rgba(26, 58, 107, 0.08); --shadow-md: 0 8px 28px rgba(26, 58, 107, 0.12); --shadow-lg: 0 16px 48px rgba(26, 58, 107, 0.16); } /* ── CONTAINER ── */ .container { width: min(1100px, 92%); margin-inline: auto; } /* ══════════════════════════════════════════ NAV ══════════════════════════════════════════ */ /* ------------------------------------------ NAV & HERO ------------------------------------------ */ .nav { background: #003150; color: #fff; border-bottom: 4px solid #feb401; padding: 14px 0; } .brand { font-size: 1.1rem; font-weight: 700; letter-spacing: 0.02em; } .cover-hero { position: relative; display: flex; align-items: center; overflow: hidden; padding: 64px 40px; background: linear-gradient(145deg, #0E2147 0%, #1A3A6B 55%, #1D4D9A 100%); border-radius: 16px; margin-bottom: 32px; font-family: 'Plus Jakarta Sans', sans-serif; } .cover-hero * { box-sizing: border-box; } .cover-hero .hero-mesh { position: absolute; inset: 0; background-image: radial-gradient(ellipse 80% 60% at 70% 40%, rgba(245, 184, 0, 0.13) 0%, transparent 60%), radial-gradient(ellipse 50% 70% at 10% 80%, rgba(59, 108, 199, 0.22) 0%, transparent 60%); pointer-events: none; } .cover-hero .hero-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px); background-size: 52px 52px; pointer-events: none; } .cover-hero .hero-stripe { position: absolute; inset: 0; background: repeating-linear-gradient(125deg, transparent, transparent 60px, rgba(255, 255, 255, 0.012) 60px, rgba(255, 255, 255, 0.012) 61px); pointer-events: none; } .cover-hero .content-wrap { position: relative; z-index: 10; width: 100%; } .cover-hero .hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(245, 184, 0, 0.12); border: 1px solid rgba(245, 184, 0, 0.22); border-radius: 50px; padding: 6px 16px; font-size: 0.68rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #FFDA5A; margin-bottom: 24px; } .cover-hero h1 { font-family: 'Playfair Display', serif; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 900; color: #fff; letter-spacing: -1.5px; line-height: 1.06; margin-bottom: 20px; } .cover-hero p.hero-sub { font-size: 0.97rem; line-height: 1.9; color: rgba(255, 255, 255, 0.58); max-width: 520px; margin-bottom: 30px; } .cover-hero .hero-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 36px; } .cover-hero .btn-gold { display: inline-flex; align-items: center; gap: 8px; background: #F5B800; color: #1A3A6B; padding: 12px 22px; border-radius: 10px; font-size: 0.83rem; font-weight: 700; text-decoration: none; transition: all 0.25s; } .cover-hero .btn-gold:hover { background: #FFDA5A; box-shadow: 0 8px 28px rgba(245, 184, 0, 0.35); transform: translateY(-2px); } .cover-hero .btn-ghost-w { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid rgba(255, 255, 255, 0.25); color: #fff; padding: 11px 20px; border-radius: 10px; font-size: 0.83rem; font-weight: 600; text-decoration: none; transition: all 0.25s; } .cover-hero .btn-ghost-w:hover { border-color: #FFDA5A; color: #FFDA5A; } .cover-hero .stat-strip { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; overflow: hidden; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 480px; } .cover-hero .stat-cell { padding: 20px 18px; border-right: 1px solid rgba(255, 255, 255, 0.07); } .cover-hero .stat-cell:last-child { border-right: none; } .cover-hero .stat-num { font-family: 'Playfair Display', serif; font-size: 1.9rem; font-weight: 900; color: #FFDA5A; line-height: 1; margin: 0; } .cover-hero .stat-lbl { font-size: 0.58rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255, 255, 255, 0.33); margin-top: 4px; } .hero { position: relative; color: #fff; min-height: 220px; display: flex; align-items: flex-end; overflow: hidden; } .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.45); opacity: 1; } .hero-inner { position: relative; z-index: 1; padding: 36px 0 36px 0; } .badge { display: inline-block; background: #feb401; color: #111827; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.2rem 0.45rem; margin-bottom: 12px; border: none; border-radius: 0; } .hero h1, .hero-inner h1 { margin: 0; font-size: clamp(1.6rem, 3.2vw, 2.8rem); line-height: 1.2; letter-spacing: normal; } /* ------------------------------------------ MAIN LAYOUT ------------------------------------------ */ /* ------------------------------------------ MAIN LAYOUT ------------------------------------------ */ /* ------------------------------------------ MAIN LAYOUT ------------------------------------------ */ .layout { display: flex; flex-direction: column; gap: 2rem; padding: 2rem 0 4rem; } @media (min-width: 1024px) { .layout { /* Menghapus pembagian kolom 3/4 dengan sidebar yang kosong */ display: block; } } .meta { font-size: 0.78rem; text-transform: uppercase; color: #475569; display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; margin-bottom: 1rem; } .cover { background: #f8fafc; border: 1px solid #e2e8f0; margin-bottom: 1.5rem; } .cover img { width: 100%; height: auto; display: block; } .article-body > * + * { margin-top: 1.1em; } .article-body h2 { font-size: 1.35rem; margin: 1.6em 0 0.5em; } .article-body h3 { font-size: 1.1rem; margin: 1.4em 0 0.4em; } .article-body p { margin: 0 0 1em; } .article-body ul, .article-body ol { padding-left: 1.4rem; } .article-body blockquote { border-left: 4px solid #005eb8; background: #eef6ff; padding: 0.8rem 1rem; color: #334155; } .article-body a { color: #005eb8; } .article-body img { max-width: 100%; border-radius: 8px; } .article-body code { background: #f1f5f9; padding: 0.1em 0.35em; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; } .note { border: 1px solid #e2e8f0; background: #f8fafc; padding: 1rem; } .note h3 { margin: 0 0 0.5rem; font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.12em; color: #475569; } .footer { margin-top: 2rem; background: #003150; color: #fff; border-top: 4px solid var(--gold); } .footer-inner { display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1rem 0; } .footer-logo { height: 28px; width: auto; } .footer p { font-size: 1rem; color: #ffffff; font-weight: normal; margin: 0; } .footer-ornament { width: 100%; display: block; opacity: 0.9; } /* ------------------------------------------ SHARED UTILITIES (used inside assignment-body) ══════════════════════════════════════════ */ .sec { padding: 72px 0; margin: 0 -24px; padding-left: 24px; padding-right: 24px; } .sec-cream { background: var(--cream); border-radius: var(--radius-lg); margin: 0; padding-left: 0; padding-right: 0; } .sec-navy { background: var(--navy); border-radius: var(--radius-lg); } /* eyebrow label */ .eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 0.67rem; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--navy-mid); } .eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--gold); border-radius: 2px; flex-shrink: 0; } .eyebrow-y { color: var(--gold-lt); } .eyebrow-y::before { background: var(--gold-lt); } /* section headings */ .sec-h2, #assignment-body .sec-h2 { font-family: "Playfair Display", serif; font-size: clamp(1.6rem, 2.8vw, 2.3rem); letter-spacing: -0.4px; margin-top: 10px; color: var(--ink); } .sec-h2 em { font-style: italic; color: var(--navy-mid); } .sec-h2-w, #assignment-body .sec-h2-w { color: #fff; } .sec-h2-w em, #assignment-body .sec-h2-w em { color: var(--gold-lt); } .sec-sub { font-size: 0.9rem; line-height: 1.85; color: var(--muted); margin-top: 10px; } /* ── BUTTONS ── */ .btn-gold { display: inline-flex; align-items: center; gap: 8px; background: var(--gold); color: var(--navy); padding: 11px 22px; border-radius: var(--radius-sm); font-size: 0.84rem; font-weight: 700; transition: all 0.25s; cursor: pointer; border: none; } .btn-gold:hover { background: var(--gold-lt); box-shadow: 0 8px 24px rgba(245, 184, 0, 0.35); transform: translateY(-2px); } .btn-ghost-b { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--line); color: var(--navy); background: #fff; padding: 10px 20px; border-radius: var(--radius-sm); font-size: 0.84rem; font-weight: 600; transition: all 0.25s; } .btn-ghost-b:hover { border-color: var(--navy-mid); background: var(--navy-ghost); } .btn-ig { display: inline-flex; align-items: center; gap: 8px; background: linear-gradient( 135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888 ); color: #fff !important; padding: 10px 18px; border-radius: var(--radius-sm); font-size: 0.82rem; font-weight: 700; transition: all 0.25s; } .btn-ig:hover { opacity: 0.88; transform: translateY(-2px); } /* ══════════════════════════════════════════ HIGH ACHIEVERS ══════════════════════════════════════════ */ .achiever-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } @media (max-width: 900px) { .achiever-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 500px) { .achiever-grid { grid-template-columns: 1fr; } } .achiever-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; position: relative; transition: all 0.3s; } .achiever-card:hover { border-color: var(--navy-mid); box-shadow: var(--shadow-md); transform: translateY(-4px); } .crown-badge { position: absolute; top: 10px; right: 10px; background: var(--gold-bg); border: 1px solid var(--gold); border-radius: 50px; padding: 3px 10px; font-size: 0.6rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #b38500; display: flex; align-items: center; gap: 4px; } .achiever-body { padding: 22px 18px; } .achiever-avatar-circle { width: 66px; height: 66px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 3px solid var(--navy-ghost); margin-bottom: 12px; overflow: hidden; } .achiever-avatar-circle img { width: 100%; height: 100%; object-fit: cover; } .achiever-card:hover .achiever-avatar-circle { border-color: var(--gold-lt); } .achiever-initials { font-family: "Playfair Display", serif; font-size: 1.1rem; font-weight: 900; color: var(--gold-lt); letter-spacing: 1px; } .achiever-batch { font-size: 0.6rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--navy-mid); margin-bottom: 3px; } .achiever-name { font-size: 0.93rem; font-weight: 700; margin-bottom: 3px; color: var(--ink); font-family: "Roboto", Arial, sans-serif; } .achiever-pos { font-size: 0.77rem; color: var(--muted); line-height: 1.5; margin-bottom: 12px; min-height: 40px; } ul.achiever-achievements { list-style: none; padding: 0; margin: 0; text-align: left; border-top: 1px dashed #e5e7eb; padding-top: 12px; width: 100%; } ul.achiever-achievements li { font-size: 0.72rem; color: var(--ink); margin-bottom: 6px; position: relative; padding-left: 14px; } ul.achiever-achievements li::before { content: "•"; color: var(--gold); font-weight: bold; position: absolute; left: 2px; top: 0px; } /* ══════════════════════════════════════════ CAREER — INDUSTRY BARS ══════════════════════════════════════════ */ .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: start; } .stat-cols { grid-template-columns: 1.3fr 0.7fr; } .two-col > * { min-width: 0; } @media (max-width: 760px) { .two-col, .stat-cols { grid-template-columns: 1fr; gap: 32px; } } .industry-row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 14px; } .industry-labels { display: flex; justify-content: space-between; align-items: center; } .industry-label { font-size: 0.84rem; font-weight: 700; color: var(--ink); } .industry-pct { font-size: 0.84rem; font-weight: 700; color: var(--navy-mid); } .industry-track { height: 8px; border-radius: 50px; background: var(--navy-ghost); overflow: hidden; } .industry-fill { height: 100%; border-radius: 50px; } /* company logo grid */ .logo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; } @media (max-width: 500px) { .logo-grid { grid-template-columns: repeat(3, 1fr); } } .logo-card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 14px 10px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); transition: all 0.22s; text-align: center; } .logo-card:hover { border-color: var(--navy-mid); background: var(--navy-ghost); transform: translateY(-3px); box-shadow: var(--shadow-sm); } .logo-initials { width: 42px; height: 42px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.3px; } .logo-name { font-size: 0.64rem; font-weight: 600; color: #374151; } /* career info box */ .career-info-box { margin-top: 14px; background: var(--navy-ghost); border-radius: var(--radius-md); padding: 14px 16px; border-left: 3px solid var(--gold); } .career-info-box p { font-size: 0.8rem; color: #374151; line-height: 1.7; } /* ══════════════════════════════════════════ SKILL DISTRIBUTION ══════════════════════════════════════════ */ .skill-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f3f4f6; } .skill-row:last-child { border-bottom: none; } .skill-label { font-size: 0.82rem; font-weight: 600; min-width: 165px; color: var(--ink); } .skill-track { flex: 1; height: 7px; border-radius: 50px; background: var(--navy-ghost); overflow: hidden; } .skill-fill { height: 100%; border-radius: 50px; background: linear-gradient(90deg, var(--navy), var(--navy-lt)); } .skill-pct { font-size: 0.82rem; font-weight: 700; color: var(--navy); min-width: 34px; text-align: right; } @media (max-width: 500px) { .skill-label { min-width: 120px; font-size: 0.78rem; } .skill-row { gap: 8px; } .skill-pct { font-size: 0.78rem; min-width: 30px; } } /* skill stat box */ .skill-stat-box { background: var(--navy); border-radius: var(--radius-lg); padding: 30px; position: relative; overflow: hidden; } .skill-stat-box::before { content: ""; position: absolute; top: -20px; right: -20px; width: 110px; height: 110px; border-radius: 50%; background: rgba(245, 184, 0, 0.1); } .skill-stat-box::after { content: ""; position: absolute; bottom: -28px; left: -18px; width: 90px; height: 90px; border-radius: 50%; background: rgba(59, 108, 199, 0.15); } .skill-big-num { font-family: "Playfair Display", serif; font-size: 3rem; font-weight: 900; color: var(--gold-lt); line-height: 1; margin-bottom: 6px; position: relative; z-index: 1; } .skill-stat-title { font-size: 0.95rem; font-weight: 700; color: #fff; margin-bottom: 8px; position: relative; z-index: 1; } .skill-stat-sub { font-size: 0.8rem; color: rgba(255, 255, 255, 0.5); line-height: 1.7; margin-bottom: 18px; position: relative; z-index: 1; } .skill-stat-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; margin-bottom: 8px; position: relative; z-index: 1; } .skill-stat-row:last-child { margin-bottom: 0; } .skill-stat-key { font-size: 0.78rem; color: rgba(255, 255, 255, 0.6); } .skill-stat-val { font-size: 0.78rem; font-weight: 700; color: var(--gold-lt); } /* ══════════════════════════════════════════ STATISTIK — SUMMARY CARDS + CHART ══════════════════════════════════════════ */ .stat-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 36px; } @media (max-width: 760px) { .stat-summary-grid { grid-template-columns: 1fr 1fr; } } .sum-card { border-radius: var(--radius-md); padding: 20px; position: relative; overflow: hidden; } .sum-card-navy { background: var(--navy); } .sum-card-white { background: #fff; border: 1px solid var(--line); } .sum-num-large { font-family: "Playfair Display", serif; font-size: 1.9rem; font-weight: 900; line-height: 1; margin-bottom: 4px; } .sum-num-navy { color: var(--gold-lt); } .sum-num-blue { color: var(--navy-mid); } .sum-num-green { color: #059669; } .sum-label { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; } .sum-label-w { color: rgba(255, 255, 255, 0.5); } .sum-label-g { color: var(--muted); } .chart-box { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow-sm); } .chart-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; } .chart-title { font-size: 0.72rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); } .chart-legend { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; } .legend-dot { display: inline-flex; align-items: center; gap: 6px; font-size: 0.72rem; color: var(--muted); } .legend-dot span { width: 12px; height: 12px; border-radius: 3px; display: inline-block; } /* bar chart (CSS-only) */ .bar-chart-wrap { overflow-x: auto; } .bar-chart { display: flex; align-items: flex-end; gap: 6px; height: 200px; padding-bottom: 32px; position: relative; min-width: 480px; } .bar-chart::before { content: ""; position: absolute; left: 0; right: 0; bottom: 32px; top: 0; background: repeating-linear-gradient( to top, #f3f4f6 0, #f3f4f6 1px, transparent 1px, transparent 25% ); } .bar-group { flex: 1; display: flex; align-items: flex-end; gap: 3px; position: relative; } .bar { flex: 1; border-radius: 5px 5px 0 0; position: relative; min-width: 12px; transition: opacity 0.2s; } .bar:hover { opacity: 0.8; } .bar-navy { background: rgba(26, 58, 107, 0.85); } .bar-gold { background: rgba(245, 184, 0, 0.85); } .bar-label { position: absolute; bottom: -28px; left: 50%; transform: translateX(-50%); font-size: 0.68rem; font-weight: 600; color: var(--muted); white-space: nowrap; } #career, #database, #kontribusi { background: #f9fafb; padding: 52px 0; margin: 8px 0; position: relative; overflow: hidden; width: 100vw; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box; } @media (max-width: 480px) { #database table th, #database table td { padding: 10px 12px !important; font-size: 0.8rem !important; } .chart-box { padding: 16px; } } .section-inner { width: min(1100px, 92%); margin-inline: auto; position: relative; z-index: 1; } /* ══════════════════════════════════════════ TESTIMONIALS ══════════════════════════════════════════ */ #testimoni { background: #1a3a6b; padding: 52px 0; margin: 8px 0; position: relative; overflow: hidden; width: 100vw; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box; } .testi-section-inner { width: min(1100px, 92%); margin-inline: auto; position: relative; z-index: 1; } .testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } @media (max-width: 660px) { .testi-grid { grid-template-columns: 1fr; } } .testi-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px 22px; position: relative; transition: all 0.3s; display: flex; flex-direction: column; } .testi-card:hover { border-color: var(--navy-mid); box-shadow: var(--shadow-md); transform: translateY(-4px); } .testi-quote-mark { position: absolute; top: 12px; left: 20px; font-family: "Playfair Display", serif; font-size: 3.5rem; color: var(--navy-ghost); line-height: 1; pointer-events: none; opacity: 0.5; } .testi-text { font-size: 0.88rem; line-height: 1.85; color: #374151; font-style: italic; margin-bottom: 18px; } .testi-footer { display: flex; align-items: center; gap: 12px; border-top: 1px solid #f3f4f6; padding-top: 14px; margin-top: auto; } .testi-avatar { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid var(--navy-ghost); flex-shrink: 0; font-size: 0.76rem; font-weight: 800; color: #fff; font-family: "Roboto", Arial, sans-serif; } .testi-meta { flex: 1; } .testi-name { font-size: 0.88rem; font-weight: 700; color: var(--ink); } .testi-role { font-size: 0.74rem; color: var(--muted); margin-top: 1px; } .stars { display: flex; gap: 2px; } .star { width: 12px; height: 12px; background: var(--gold); clip-path: polygon( 50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35% ); } .star-empty { background: #d1d5db; } /* ══════════════════════════════════════════ KEGIATAN ══════════════════════════════════════════ */ .event-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } @media (max-width: 660px) { .event-grid { grid-template-columns: 1fr; } } .event-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; transition: all 0.3s; } .event-card:hover { border-color: var(--navy-mid); box-shadow: var(--shadow-md); transform: translateY(-4px); } .event-card-coming { border-color: #fde68a; } .event-banner { width: 100%; height: 180px; display: flex; align-items: center; justify-content: center; position: relative; } .event-banner-done { background: linear-gradient(135deg, var(--navy), #2352a0); } .event-banner-soon { background: linear-gradient(135deg, #2352a0, var(--navy)); } .event-banner svg { opacity: 0.35; } .ribbon { position: absolute; top: 14px; right: -1px; background: var(--gold); color: var(--navy); font-size: 0.6rem; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; padding: 5px 14px; } .event-body { padding: 22px; } .event-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; } .event-name { font-size: 0.98rem; font-weight: 800; color: var(--navy); font-family: "Playfair Display", serif; } .event-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 50px; font-size: 0.6rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; } .badge-done { background: #dcfce7; color: #15803d; border: 1px solid #bbf7d0; } .badge-soon { background: #fef9c3; color: #b45309; border: 1px solid #fde68a; } .event-desc { font-size: 0.84rem; color: #374151; line-height: 1.75; margin-bottom: 16px; } .event-info-box { border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 14px; } .event-info-box-done { background: var(--cream); border: 1px solid var(--line); } .event-info-box-soon { background: var(--gold-bg); border: 1px solid #fde68a; } .event-info-label { font-size: 0.66rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 8px; } .event-info-label-done { color: var(--navy-mid); } .event-info-label-soon { color: #b38500; } .schedule-row { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(0, 0, 0, 0.05); } .schedule-row:last-child { border-bottom: none; } .schedule-icon { flex-shrink: 0; margin-top: 1px; } .schedule-title { font-size: 0.74rem; font-weight: 700; color: var(--ink); } .schedule-sub { font-size: 0.7rem; color: var(--muted); } .event-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .event-info-note { display: inline-flex; align-items: center; gap: 5px; font-size: 0.74rem; color: var(--muted); } /* ══════════════════════════════════════════ FORM / JOIN IKA ══════════════════════════════════════════ */ .step-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 26px; } .step-row { display: flex; gap: 14px; align-items: flex-start; } .step-num { width: 34px; height: 34px; border-radius: 50%; background: var(--navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px; font-size: 0.8rem; font-weight: 800; color: var(--gold-lt); } .step-num-done { background: #22c55e; } .step-h { font-size: 0.88rem; font-weight: 700; margin-bottom: 2px; color: var(--ink); } .step-p { font-size: 0.8rem; color: var(--muted); line-height: 1.7; } .group-highlight { background: var(--navy); border-radius: var(--radius-md); padding: 18px 20px; position: relative; overflow: hidden; } .group-highlight::before { content: ""; position: absolute; top: -14px; right: -14px; width: 70px; height: 70px; border-radius: 50%; background: rgba(245, 184, 0, 0.12); } .group-ey { font-size: 0.66rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 10px; } .group-inner { display: flex; align-items: center; gap: 14px; } .group-wa-icon { width: 42px; height: 42px; border-radius: 50%; background: #22c55e; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .group-title { font-size: 0.93rem; font-weight: 700; color: #fff; } .group-member { font-size: 0.76rem; color: rgba(255, 255, 255, 0.5); margin-top: 1px; } /* form card */ .form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px 22px; box-shadow: var(--shadow-sm); } .form-card-title { font-size: 0.68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--navy-mid); margin-bottom: 4px; } .form-card-sub { font-size: 0.78rem; color: #9ca3af; margin-bottom: 18px; } .form-group { margin-bottom: 14px; } .form-label { display: block; font-size: 0.78rem; font-weight: 700; color: #374151; margin-bottom: 5px; } .form-input { width: 100%; padding: 10px 13px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); font-size: 0.87rem; font-family: "Roboto", Arial, sans-serif; color: var(--ink); background: var(--cream); outline: none; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } @media (max-width: 440px) { .form-row { grid-template-columns: 1fr; } } .form-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; } @media (max-width: 440px) { .form-row-3 { grid-template-columns: 1fr; } } .form-consent { display: flex; align-items: flex-start; gap: 10px; padding: 11px 13px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); background: var(--cream); } .form-checkbox { width: 16px; height: 16px; border: 2px solid var(--navy-mid); border-radius: 4px; flex-shrink: 0; margin-top: 1px; display: flex; align-items: center; justify-content: center; } .form-consent-text { font-size: 0.76rem; color: var(--muted); line-height: 1.6; } .form-cta-note { font-size: 0.72rem; color: #9ca3af; text-align: center; margin-top: 8px; } .form-note-optional { font-weight: 400; color: #9ca3af; } /* ══════════════════════════════════════════ FAQ ══════════════════════════════════════════ */ .faq-list { display: flex; flex-direction: column; gap: 8px; } .faq-item { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; } .faq-q { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; cursor: pointer; background: #fff; font-size: 0.88rem; font-weight: 700; color: var(--ink); gap: 12px; transition: background 0.2s; user-select: none; } .faq-q:hover { background: var(--cream); } .faq-item.open .faq-q { background: var(--navy-ghost); color: var(--navy); } .faq-icon { color: var(--muted); flex-shrink: 0; transition: transform 0.25s; } .faq-item.open .faq-icon { transform: rotate(45deg); color: var(--navy-mid); } .faq-a { display: none; padding: 0 18px 14px; font-size: 0.85rem; color: var(--muted); line-height: 1.8; background: #fff; } .faq-item.open .faq-a { display: block; } /* ══════════════════════════════════════════ CONTACT / INSTAGRAM ══════════════════════════════════════════ */ .ig-main-card { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border: 2px solid var(--line); background: #fff; border-radius: var(--radius-lg); text-decoration: none; transition: all 0.3s; margin-bottom: 14px; } .ig-main-card:hover { border-color: #e1306c; background: #fff5f7; transform: translateY(-3px); } .ig-icon-lg { width: 52px; height: 52px; border-radius: 14px; background: linear-gradient( 135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888 ); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .ig-main-label { font-size: 0.7rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #9ca3af; margin-bottom: 2px; } .ig-main-handle { font-size: 0.98rem; font-weight: 800; color: var(--ink); } .ig-main-sub { font-size: 0.74rem; color: var(--muted); margin-top: 1px; } .ig-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 22px; } .ig-card { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 14px 10px; border: 1px solid var(--line); background: #fff; border-radius: var(--radius-md); text-decoration: none; transition: all 0.25s; text-align: center; } .ig-card:hover { border-color: #e1306c; transform: translateY(-2px); } .ig-icon-sm { width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, #f09433, #dc2743, #bc1888); display: flex; align-items: center; justify-content: center; } .ig-handle { font-size: 0.74rem; font-weight: 700; color: var(--ink); } .ig-sub { font-size: 0.67rem; color: #9ca3af; } .cta-box { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 18px 20px; } .cta-box-ey { font-size: 0.7rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--muted); margin-bottom: 7px; } .cta-box-p { font-size: 0.84rem; color: #374151; line-height: 1.7; margin-bottom: 12px; } /* ══════════════════════════════════════════ REVEAL ANIMATION ══════════════════════════════════════════ */ .rv { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; } .rv.in { opacity: 1; transform: none; } .d1 { transition-delay: 0.06s; } .d2 { transition-delay: 0.12s; } .d3 { transition-delay: 0.18s; } .d4 { transition-delay: 0.24s; } /* section title block (centered) */ .sec-title-center { text-align: center; margin-bottom: 48px; } .sec-title-center .eyebrow { justify-content: center; } /* small note text */ .note-tiny { font-size: 0.72rem; color: #9ca3af; margin-top: 12px; } /* Responsive Styles for hero section */ @media (max-width: 768px) { .cover-hero { padding: 40px 24px; } } @media (max-width: 640px) { .cover-hero .stat-strip { grid-template-columns: repeat(3, 1fr); } .cover-hero .stat-cell { padding: 14px 10px; } .cover-hero .stat-num { font-size: 1.5rem; } .cover-hero .hero-badge { font-size: 0.6rem; padding: 5px 12px; } } @media (max-width: 480px) { .cover-hero .hero-btns { flex-direction: column; } .cover-hero .btn-gold, .cover-hero .btn-ghost-w { width: 100%; justify-content: center; } } /* Responsive Header & Footer */ @media (max-width: 640px) { .nav { padding: 12px 16px; text-align: center; } .brand { font-size: 0.95rem; } .footer-inner { flex-direction: column; gap: 12px; padding: 24px 16px; text-align: center; } .footer p { font-size: 0.85rem; } .cover-hero h1 { font-size: 2.2rem; line-height: 1.15; } .cover-hero p.hero-sub { font-size: 0.85rem; } } /* Fix Grid Blowout */ .layout > * { min-width: 0; } #assignment-body { min-width: 0; } @media (max-width: 768px) { #assignment-body { padding-left: 16px; padding-right: 16px; box-sizing: border-box; } } /* ===================================================== CUSTOM HERO FOR M4N1FEST ===================================================== */ .hero-custom.custom-hero-m4n1fest { background-color: #1a3a6b; background-image: linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px); background-size: 40px 40px; color: white; padding: 80px 24px; border-radius: 0px; margin-bottom: 30px; position: relative; overflow: hidden; } .hero-custom .custom-hero-container { max-width: 1000px; margin: 0 auto; position: relative; z-index: 2; } .hero-custom .custom-hero-label { display: inline-flex; align-items: center; background-color: rgba(26, 58, 107, 0.5); /* slightly lighter for contrast, or bordered */ border: 1px solid rgba(245, 184, 0, 0.3); color: #F5B800; font-size: 0.75rem; font-weight: 700; letter-spacing: 1px; padding: 6px 16px; border-radius: 50px; margin-bottom: 24px; } .hero-custom .custom-hero-title { font-size: 3.5rem; line-height: 1.1; margin-bottom: 8px; font-weight: 900; } .hero-custom .custom-hero-subtitle { font-size: 1.7rem; font-weight: 700; margin-bottom: 24px; color: #fff; } .hero-custom .custom-serif { font-family: inherit; /* Fallback if not loaded */ } /* If you want to use the Playfair Display for serif based on M4N1FEST's import */ .hero-custom .custom-serif { font-family: "Playfair Display", serif; font-style: italic; } .hero-custom .custom-text-yellow { color: #F5B800; } .hero-custom .custom-hero-desc { font-size: 1.05rem; line-height: 1.6; max-width: 580px; color: #d1d5db; margin-bottom: 32px; } .hero-custom .custom-hero-buttons { display: flex; gap: 16px; margin-bottom: 56px; flex-wrap: wrap; } .hero-custom .custom-btn-primary { display: inline-flex; align-items: center; background-color: #F5B800; color: #0f172a; font-weight: 700; font-size: 0.95rem; padding: 12px 24px; border-radius: 8px; transition: opacity 0.2s; } .hero-custom .custom-btn-primary:hover { opacity: 0.9; } .hero-custom .custom-btn-secondary { display: inline-flex; align-items: center; background-color: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); color: white; font-weight: 600; font-size: 0.95rem; padding: 12px 24px; border-radius: 8px; transition: background-color 0.2s; } .hero-custom .custom-btn-secondary:hover { background-color: rgba(255, 255, 255, 0.12); } .hero-custom .custom-stats { display: flex; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; display: inline-flex; flex-wrap: wrap; } .hero-custom .custom-stat-box { padding: 20px 32px; border-right: 1px solid rgba(255, 255, 255, 0.1); } .hero-custom .custom-stat-num { font-size: 2rem; font-weight: 900; color: #F5B800; margin-bottom: 4px; } .hero-custom .custom-stat-plus { font-size: 1.4rem; font-style: normal; vertical-align: super; } .hero-custom .custom-stat-label { font-size: 0.75rem; letter-spacing: 1px; font-weight: 700; color: #9ca3af; } @media (max-width: 640px) { .hero-custom .custom-hero-title { font-size: 2.5rem; } .hero-custom .custom-stats { flex-direction: column; border-right: none; width: 100%; } .hero-custom .custom-stat-box { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); text-align: center; } .hero-custom .custom-stat-box:last-child { border-bottom: none; } .hero-custom .custom-hero-buttons { flex-direction: column; } .hero-custom .custom-btn-primary, .hero-custom .custom-btn-secondary { width: 100%; justify-content: center; } }