:root { --ink: #0A0E14; --ink-2: #10161F; --steel: #4A5568; --steel-light: #8A94A3; --blueprint: #1E4E8C; --signal: #3B82C4; --paper: #F4F5F7; --paper-dim: #E7E9ED; --amber: #D98C2B; --line: rgba(255,255,255,0.09); --line-dark: rgba(10,14,20,0.10); --font-display: 'IBM Plex Sans', sans-serif; --font-mono: 'IBM Plex Mono', monospace; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: var(--font-display); background: var(--paper); color: var(--ink); line-height: 1.5; -webkit-font-smoothing: antialiased; } a { color: inherit; text-decoration: none; } img, svg { display: block; max-width: 100%; } .container { max-width: 1120px; margin: 0 auto; padding: 0 32px; } .eyebrow { font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--steel); display: flex; align-items: center; gap: 10px; } .eyebrow::before { content: ""; width: 18px; height: 1px; background: var(--amber); display: inline-block; } .eyebrow.on-dark { color: var(--steel-light); } /* ---------- NAV ---------- */ header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: rgba(10,14,20,0.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); } nav { max-width: 1120px; margin: 0 auto; padding: 0 32px; height: 68px; display: flex; align-items: center; justify-content: space-between; } .logo { font-family: var(--font-mono); font-weight: 500; font-size: 16px; color: #fff; letter-spacing: 0.02em; display: flex; align-items: center; gap: 8px; } .logo .dot { color: var(--amber); } .nav-links { display: flex; align-items: center; gap: 34px; } .nav-links a { font-size: 14.5px; color: var(--steel-light); transition: color 0.15s ease; } .nav-links a:hover, .nav-links a:focus-visible { color: #fff; } .nav-links a.current { color: #fff; border-bottom: 1px solid var(--signal); padding-bottom: 4px; } .nav-cta { font-family: var(--font-mono); font-size: 13px; color: #fff !important; background: var(--blueprint); padding: 9px 18px; border-radius: 2px; border: 1px solid var(--signal); transition: background 0.15s ease; } .nav-cta:hover { background: var(--signal); } .nav-cta.current { border-bottom: none !important; } /* ---------- HERO (home only) ---------- */ .hero { background: var(--ink); color: #fff; padding: 168px 0 120px; position: relative; overflow: hidden; } .hero-photo { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.34; } .hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(var(--ink) 0%, rgba(10,14,20,0.55) 55%, var(--ink) 100%), radial-gradient(ellipse 60% 50% at 20% 30%, rgba(30,78,140,0.45), transparent 70%); pointer-events: none; } .hero-inner { position: relative; z-index: 1; max-width: 720px; } .hero .eyebrow { margin-bottom: 22px; } h1 { font-size: clamp(34px, 5.2vw, 54px); font-weight: 600; line-height: 1.12; letter-spacing: -0.01em; margin-bottom: 24px; } h1 span { color: var(--signal); } .hero-sub { font-size: 18px; color: var(--steel-light); max-width: 560px; margin-bottom: 40px; } .hero-actions { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; } .btn-primary { font-family: var(--font-mono); font-size: 14px; background: var(--amber); color: var(--ink); padding: 14px 26px; border-radius: 2px; font-weight: 500; border: 1px solid var(--amber); transition: background 0.15s ease; display: inline-block; } .btn-primary:hover { background: #c67c1f; } .btn-secondary { font-family: var(--font-mono); font-size: 14px; color: var(--steel-light); padding: 14px 6px; border-bottom: 1px solid var(--steel); transition: color 0.15s ease, border-color 0.15s ease; } .btn-secondary:hover { color: #fff; border-color: #fff; } .hero-meta { margin-top: 64px; display: flex; gap: 48px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 13px; color: var(--steel-light); border-top: 1px solid var(--line); padding-top: 24px; position: relative; z-index: 1; } .hero-meta strong { color: #fff; display: block; font-size: 15px; margin-bottom: 4px; font-family: var(--font-display); font-weight: 600; } /* ---------- PAGE HEADER (inner pages) ---------- */ .page-header { background: var(--ink); color: #fff; padding: 156px 0 64px; position: relative; overflow: hidden; } .page-header-photo { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.28; } .page-header::after { content: ""; position: absolute; inset: 0; background: linear-gradient(var(--ink) 0%, rgba(10,14,20,0.5) 60%, var(--ink) 100%), radial-gradient(ellipse 55% 50% at 15% 20%, rgba(30,78,140,0.4), transparent 70%); pointer-events: none; } .page-header-inner { position: relative; z-index: 1; max-width: 640px; } .page-header h1 { font-size: clamp(30px, 4.4vw, 44px); margin-bottom: 14px; } .page-header p { color: var(--steel-light); font-size: 16.5px; max-width: 520px; } /* ---------- SECTION GENERIC ---------- */ section { padding: 108px 0; } .section-head { max-width: 620px; margin-bottom: 64px; } .section-head h2 { font-size: clamp(26px, 3.4vw, 36px); font-weight: 600; margin-top: 16px; letter-spacing: -0.01em; } .section-head p { margin-top: 16px; color: var(--steel); font-size: 16.5px; } .section-title-inline { font-size: clamp(26px,3.4vw,36px); font-weight:600; margin: 16px 0 24px; letter-spacing:-0.01em; } /* ---------- SERVICES ---------- */ .services { background: #fff; } .service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--paper-dim); border: 1px solid var(--paper-dim); } .service-card { background: #fff; display: flex; flex-direction: column; } .service-photo { height: 200px; background-size: cover; background-position: center; } .service-card-body { padding: 36px 40px 44px; } .service-card .tag { font-family: var(--font-mono); font-size: 12px; color: var(--amber); letter-spacing: 0.08em; } .service-card h3 { font-size: 22px; font-weight: 600; margin: 14px 0 16px; } .service-card p.desc { color: var(--steel); font-size: 15.5px; margin-bottom: 20px; } .service-card ul { list-style: none; } .service-card li { font-size: 14.5px; color: var(--ink); padding: 9px 0; border-top: 1px solid var(--paper-dim); display: flex; gap: 10px; } .service-card li::before { content: "—"; color: var(--steel-light); } /* ---------- ABOUT / DIAGRAM ---------- */ .about { background: var(--paper); } .about-layout { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 56px; align-items: center; } .about-copy p { color: var(--steel); font-size: 16px; margin-bottom: 18px; } .about-copy p strong { color: var(--ink); } .diagram-wrap { background: var(--ink); border-radius: 4px; padding: 36px 28px; border: 1px solid #1c2431; } .diagram-caption { font-family: var(--font-mono); font-size: 11.5px; color: var(--steel-light); letter-spacing: 0.06em; margin-top: 18px; text-align: center; } .photo-band { height: 340px; background-size: cover; background-position: center; border-radius: 4px; position: relative; overflow: hidden; } .photo-band-caption { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(transparent, rgba(10,14,20,0.85)); color: #fff; padding: 40px 24px 18px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.05em; } /* ---------- ROADMAP ---------- */ .roadmap { background: var(--ink); color: #fff; } .roadmap .section-head p { color: var(--steel-light); } .roadmap-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; } .roadmap-card { border: 1px solid var(--line); padding: 30px 26px; border-radius: 2px; position: relative; } .roadmap-card.active { border-color: var(--signal); background: rgba(59,130,196,0.06); } .status { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; padding: 4px 9px; border-radius: 2px; display: inline-block; margin-bottom: 16px; } .status.live { background: rgba(59,130,196,0.18); color: var(--signal); } .status.soon { background: rgba(255,255,255,0.06); color: var(--steel-light); } .roadmap-card h3 { font-size: 18px; font-weight: 600; margin-bottom: 10px; } .roadmap-card p { font-size: 14.5px; color: var(--steel-light); } /* ---------- CTA BAND ---------- */ .cta-band { background: var(--paper-dim); padding: 72px 0; } .cta-band-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; } .cta-band h2 { font-size: 26px; font-weight: 600; margin-bottom: 6px; } .cta-band p { color: var(--steel); font-size: 15px; } /* ---------- CONTACT ---------- */ .contact { background: #fff; } .contact-layout { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; } .contact-info p { color: var(--steel); font-size: 16px; margin-bottom: 28px; } .contact-detail { margin-bottom: 20px; } .contact-detail .label { font-family: var(--font-mono); font-size: 11.5px; color: var(--steel-light); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 4px; } .contact-detail .value { font-size: 16px; font-weight: 500; } form { display: flex; flex-direction: column; gap: 18px; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } label { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.05em; color: var(--steel); margin-bottom: 7px; display: block; } input, textarea { width: 100%; border: 1px solid var(--paper-dim); background: var(--paper); padding: 12px 14px; font-family: var(--font-display); font-size: 15px; border-radius: 2px; color: var(--ink); transition: border-color 0.15s ease; } input:focus, textarea:focus { outline: none; border-color: var(--blueprint); } textarea { resize: vertical; min-height: 110px; } .submit-btn { font-family: var(--font-mono); font-size: 14px; background: var(--ink); color: #fff; padding: 14px 26px; border-radius: 2px; border: none; cursor: pointer; align-self: flex-start; transition: background 0.15s ease; } .submit-btn:hover { background: var(--blueprint); } /* ---------- FOOTER ---------- */ footer { background: var(--ink); color: var(--steel-light); padding: 40px 0; border-top: 1px solid var(--line); } .footer-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; font-size: 13.5px; } .footer-row .logo { font-size: 14px; } .footer-links { display: flex; gap: 24px; } .footer-links a:hover { color: #fff; }
0