/* --- CSS Variables & Reset --- */ /* Default: LIGHT THEME */ :root { --oc-header-bg: #ffffff; --oc-header-border: rgba(0, 0, 0, 0.08); --oc-footer-bg: #ffffff; --oc-footer-border: rgba(0, 0, 0, 0.08); /* Optional: subtle light gradient */ --oc-header-bg-gradient: linear-gradient( to right, #ffffff, #fafafa, #ffffff ); --oc-footer-bg-gradient: linear-gradient( to bottom, #ffffff, #f8f8f8 ); --oc-bg: #f3f4f6; --oc-bg-alt: #ffffff; --oc-bg-muted: #e5e7eb; --oc-card-bg: #ffffff; --oc-accent: #0ea5e9; --oc-accent-soft: rgba(14, 165, 233, 0.08); --oc-accent-strong: #0284c7; --oc-text: #111827; --oc-text-muted: #6b7280; --oc-border: #d1d5db; --oc-radius-lg: 18px; --oc-radius-xl: 24px; --oc-shadow-soft: 0 18px 45px rgba(148, 163, 184, 0.4); --oc-shadow-card: 0 10px 30px rgba(148, 163, 184, 0.35); } /* DARK THEME */ [data-theme="dark"] { --oc-header-bg: rgba(15, 23, 42, 0.92); --oc-header-border: rgba(148, 163, 184, 0.14); --oc-footer-bg: rgba(15, 23, 42, 0.96); --oc-footer-border: rgba(148, 163, 184, 0.18); --oc-header-bg-gradient: linear-gradient( to right, rgba(15, 23, 42, 0.92), rgba(15, 23, 42, 0.88), rgba(15, 23, 42, 0.92) ); --oc-footer-bg-gradient: linear-gradient( to bottom, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.92) ); --oc-bg: #050816; --oc-bg-alt: #0a1020; --oc-bg-muted: #0e1729; --oc-card-bg: #0f172a; --oc-accent: #38bdf8; --oc-accent-soft: rgba(56, 189, 248, 0.15); --oc-accent-strong: #0ea5e9; --oc-text: #e5e7eb; --oc-text-muted: #9ca3af; --oc-border: #1f2937; --oc-radius-lg: 18px; --oc-radius-xl: 24px; --oc-shadow-soft: 0 18px 45px rgba(15, 23, 42, 0.8); --oc-shadow-card: 0 10px 30px rgba(15, 23, 42, 0.7); } *, *::before, *::after { box-sizing: border-box; } html, body { margin: 0; padding: 0; } body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif; background: var(--oc-bg); color: var(--oc-text); line-height: 1.6; } [data-theme="dark"] body { background: radial-gradient(circle at top left, #1e293b 0, #020617 45%, #000 100%); } /* --- Layout --- */ .oc-container { width: 100%; max-width: 1120px; margin: 0 auto; padding: 0 1.5rem; } .oc-main { padding-top: 72px; } /* --- Header --- */ .oc-header { position: sticky; top: 0; z-index: 40; backdrop-filter: blur(18px); background: var(--oc-header-bg-gradient); border-bottom: 1px solid var(--oc-header-border); } .oc-header-inner { display: flex; align-items: center; justify-content: space-between; height: 72px; } .oc-header-right { display: flex; align-items: center; gap: 1rem; } .oc-theme-toggle { border-radius: 999px; border: 1px solid var(--oc-border); background: var(--oc-bg-alt); color: var(--oc-text-muted); font-size: 0.78rem; padding: 0.28rem 0.7rem; cursor: pointer; white-space: nowrap; } .oc-theme-toggle:hover { color: var(--oc-text); border-color: var(--oc-accent); } /* Logo */ .oc-logo { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--oc-text); } .oc-logo-mark { width: 32px; height: 32px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; background: radial-gradient(circle at 20% 20%, #38bdf8, #0ea5e9 40%, #0369a1 100%); box-shadow: 0 0 30px rgba(56, 189, 248, 0.7); } .oc-logo-text { font-weight: 650; letter-spacing: 0.03em; font-size: 1.05rem; } .oc-logo-svg { width: 70px; /* adjust this value to make it bigger/smaller */ height: auto; display: block; color: var(--oc-text); /* black in light theme, white in dark theme */ } /* Navigation */ .oc-nav-toggle { display: none; } .oc-nav-toggle-label { display: none; cursor: pointer; flex-direction: column; gap: 4px; } .oc-nav-toggle-label span { width: 20px; height: 2px; background: var(--oc-text); border-radius: 999px; } .oc-nav ul { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; } .oc-nav a { text-decoration: none; font-size: 0.95rem; color: var(--oc-text-muted); padding: 0.3rem 0; border-bottom: 2px solid transparent; transition: color 0.2s ease, border-color 0.2s ease; } .oc-nav a:hover { color: var(--oc-text); } .oc-nav-active { color: var(--oc-accent-strong) !important; border-color: var(--oc-accent-strong); } /* --- Hero --- */ .oc-hero { padding: 3.5rem 0 2.5rem; } .oc-hero-inner { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr); gap: 3rem; align-items: center; } .oc-hero-text h1 { font-size: clamp(2.1rem, 3vw, 2.7rem); line-height: 1.15; margin: 0 0 0.8rem; } .oc-hero-tagline { margin: 0 0 1.5rem; font-size: 1.05rem; color: var(--oc-text-muted); } .oc-hero-body { margin-bottom: 1.75rem; color: var(--oc-text-muted); } .oc-hero-ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; } /* Hero visual */ .oc-hero-visual { display: flex; justify-content: center; } .oc-hero-card { background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.98)); border-radius: 24px; padding: 1.5rem 1.7rem; box-shadow: var(--oc-shadow-soft); border: 1px solid rgba(148, 163, 184, 0.22); position: relative; overflow: hidden; } /* LIGHT THEME hero card */ :root .oc-hero-card { background: #ffffff; border-radius: 20px; border: 1px solid rgba(148, 163, 184, 0.25); box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08); } /* The glow background is too strong on white → soften it or remove it */ :root .oc-hero-card::before { opacity: 0.18; /* or set to 0 to disable completely */ } /* Try a slightly subtler subtitle style on light */ :root .oc-hero-card h2 { color: var(--oc-text-muted); } /* DARK THEME: keep your original look */ [data-theme="dark"] .oc-hero-card { background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.98)); border-radius: 24px; border: 1px solid rgba(148, 163, 184, 0.22); box-shadow: var(--oc-shadow-soft); } [data-theme="dark"] .oc-hero-card::before { opacity: 0.7; } .oc-hero-card::before { content: ""; position: absolute; inset: -40%; background: radial-gradient(circle at 10% 0, rgba(56, 189, 248, 0.25), transparent 55%), radial-gradient(circle at 90% 100%, rgba(129, 140, 248, 0.25), transparent 55%); opacity: 0.7; pointer-events: none; } .oc-hero-card h2 { position: relative; margin: 0 0 1rem; font-size: 1rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--oc-text-muted); } .oc-hero-card ul { position: relative; list-style: none; padding: 0; margin: 0; } .oc-hero-card li { display: flex; align-items: center; gap: 0.45rem; margin-bottom: 0.6rem; font-size: 0.94rem; } .oc-hero-card li::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: radial-gradient(circle, #22c55e, #22c55e 60%, transparent 100%); margin-right: 0.1rem; } /* --- Sections & Content --- */ .oc-section { padding: 2.5rem 0; } .oc-section-muted { background: radial-gradient(circle at top center, rgba(15, 23, 42, 0.8), rgba(15, 23, 42, 0.96)); border-top: 1px solid rgba(148, 163, 184, 0.12); border-bottom: 1px solid rgba(148, 163, 184, 0.12); } .oc-section-header { margin-bottom: 1.75rem; } .oc-section-header h1 { font-size: 2rem; margin: 0 0 0.5rem; } .oc-section-description { margin: 0; color: var(--oc-text-muted); } .oc-content { max-width: 760px; } .oc-content h2 { margin-top: 1.8rem; font-size: 1.35rem; } .oc-content h3 { margin-top: 1.3rem; font-size: 1.1rem; } .oc-content p { margin: 0.6rem 0; color: var(--oc-text-muted); } .oc-content ul, .oc-content ol { margin: 0.4rem 0 0.9rem 1.1rem; } /* --- Grid & Cards --- */ .oc-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } .oc-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } .oc-card { background: var(--oc-card-bg); border-radius: var(--oc-radius-lg); padding: 1.25rem 1.3rem; border: 1px solid var(--oc-border); box-shadow: var(--oc-shadow-card); } .oc-card h2 { margin-top: 0; margin-bottom: 0.5rem; } .oc-card p { margin-top: 0; margin-bottom: 0.6rem; color: var(--oc-text-muted); } .oc-card-link h2 a { text-decoration: none; color: var(--oc-text); } .oc-card-link h2 a:hover { color: var(--oc-accent-strong); } /* Split layout */ .oc-split { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.2fr); gap: 2rem; } /* Lists */ .oc-list-check { list-style: none; padding-left: 0; } .oc-list-check li { position: relative; padding-left: 1.4rem; margin-bottom: 0.5rem; color: var(--oc-text-muted); } .oc-list-check li::before { content: "✔"; position: absolute; left: 0; top: 0; font-size: 0.9rem; color: #22c55e; } /* Links & Buttons */ .oc-link-arrow { display: inline-flex; align-items: center; gap: 0.1rem; font-size: 0.92rem; color: var(--oc-accent); text-decoration: none; } .oc-link-arrow:hover { color: var(--oc-accent-strong); } .oc-btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.55rem 1.1rem; border-radius: 999px; font-size: 0.95rem; font-weight: 500; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background 0.18s ease, border-color 0.18s ease, transform 0.1s ease; } .oc-btn-primary { background: linear-gradient(135deg, var(--oc-accent), var(--oc-accent-strong)); color: #0f172a; box-shadow: 0 12px 30px rgba(56, 189, 248, 0.55); } .oc-btn-primary:hover { transform: translateY(-1px); } .oc-btn-secondary { background: rgba(15, 23, 42, 0.9); color: var(--oc-text); border-color: rgba(148, 163, 184, 0.5); } .oc-btn-secondary:hover { border-color: var(--oc-accent); color: var(--oc-accent-strong); } .oc-btn-outline { background: transparent; border-color: rgba(148, 163, 184, 0.45); color: var(--oc-text); } .oc-btn-outline:hover { border-color: var(--oc-accent); } /* --- Footer --- */ .oc-footer { background: var(--oc-footer-bg-gradient); border-top: 1px solid var(--oc-footer-border); padding: 1.3rem 0 1.5rem; } .oc-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; } .oc-footer-left p { margin: 0; } .oc-footer-tagline { font-size: 0.9rem; color: var(--oc-text-muted); } .oc-footer-link { color: var(--oc-accent); text-decoration: none; font-size: 0.92rem; } .oc-footer-link:hover { color: var(--oc-accent-strong); } .oc-footer-left { display: flex; align-items: center; gap: 0.9rem; } .oc-footer-logo { height: 64px; /* adjust size here */ width: auto; opacity: 0.9; /* looks good in both themes */ } .oc-footer-text p { margin: 0; line-height: 1.3; } /* Optional: adapt PNG brightness for dark theme */ [data-theme="dark"] .oc-footer-logo { filter: brightness(1.3); } /* --- Responsive --- */ @media (max-width: 900px) { .oc-hero-inner { grid-template-columns: minmax(0, 1fr); } .oc-grid-3 { grid-template-columns: minmax(0, 1fr); } .oc-grid-2, .oc-split { grid-template-columns: minmax(0, 1fr); } .oc-footer-inner { flex-direction: column; align-items: flex-start; } } @media (max-width: 720px) { .oc-nav-toggle-label { display: flex; } .oc-nav { position: absolute; top: 72px; left: 0; right: 0; background: rgba(15, 23, 42, 0.98); border-bottom: 1px solid rgba(148, 163, 184, 0.22); transform-origin: top; transform: scaleY(0); transition: transform 0.15s ease-out; } .oc-nav ul { flex-direction: column; padding: 0.8rem 1.5rem 1.1rem; gap: 0.7rem; } .oc-nav-toggle:checked ~ .oc-nav { transform: scaleY(1); } } :root .oc-btn-secondary { background: #ffffff; border-color: rgba(148, 163, 184, 0.6); color: var(--oc-text); box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04); } :root .oc-btn-secondary:hover { border-color: var(--oc-accent); color: var(--oc-accent-strong); box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06); } /* DARK THEME: preserve the existing design */ [data-theme="dark"] .oc-btn-secondary { background: rgba(15, 23, 42, 0.9); color: var(--oc-text); border-color: rgba(148, 163, 184, 0.5); } [data-theme="dark"] .oc-btn-secondary:hover { border-color: var(--oc-accent); color: var(--oc-accent-strong); }