@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap'); :root { /* Sophisticated Monochrome Palette */ --bg-alabaster: #F9F8F6; --bg-taupe: #EBE5DE; --text-charcoal: #1A1A1A; --text-grey: #6C6863; --accent-gold: #D4AF37; --white: #FFFFFF; /* Spacing */ --spacing-container: 1600px; /* Typography */ --font-display: 'Playfair Display', serif; --font-body: 'Inter', sans-serif; /* Borders */ --border-width: 1px; --border-radius: 0px; /* Architectural precision */ } /* Reset & Base */ * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-body); background-color: var(--bg-alabaster); color: var(--text-charcoal); line-height: 1.625; overflow-x: hidden; -webkit-font-smoothing: antialiased; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 400; line-height: 1.1; color: var(--text-charcoal); letter-spacing: -0.02em; } p { color: var(--text-grey); } a { text-decoration: none; color: inherit; transition: color 0.5s ease; } a:hover { color: var(--accent-gold); } /* Utilities */ .container { max-width: var(--spacing-container); margin: 0 auto; padding: 0 2rem; position: relative; z-index: 10; } .text-gold { color: var(--accent-gold); } .text-italic { font-style: italic; } /* Paper Noise Overlay */ .noise-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999; opacity: 0.05; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); } /* Grid Lines */ .grid-lines-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; display: flex; justify-content: space-between; padding: 0 2rem; max-width: var(--spacing-container); margin: 0 auto; left: 50%; transform: translateX(-50%); } .grid-line { width: 1px; height: 100%; background-color: rgba(26, 26, 26, 0.05); } /* Navigation */ .navbar { padding: 2rem 0; border-bottom: 1px solid rgba(26, 26, 26, 0.1); background: var(--bg-alabaster); position: relative; z-index: 100; } .navbar .container { display: flex; justify-content: space-between; align-items: center; } .nav-brand { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; } .nav-links { display: flex; gap: 3rem; list-style: none; } .nav-link { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; font-weight: 500; } /* Buttons */ .btn { display: inline-block; padding: 1rem 2.5rem; border-radius: var(--border-radius); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; font-weight: 500; cursor: pointer; position: relative; transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); border: 1px solid var(--text-charcoal); } .btn-primary { background-color: var(--text-charcoal); color: var(--white); overflow: hidden; } /* Gold slide effect */ .btn-primary::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--accent-gold); transform: translateX(-100%); transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); z-index: 0; } .btn-primary:hover { border-color: var(--accent-gold); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); } .btn-primary:hover::before { transform: translateX(0); } .btn-primary span { position: relative; z-index: 1; } .btn-outline { background: transparent; color: var(--text-charcoal); } .btn-outline:hover { background-color: var(--text-charcoal); color: var(--white); } /* Hero Section */ .hero { padding: 8rem 0; position: relative; } .hero h1 { font-size: 5rem; margin-bottom: 2rem; line-height: 0.95; } .hero p { font-size: 1.125rem; max-width: 600px; margin-bottom: 4rem; } /* Features Grid */ .section { padding: 6rem 0; border-top: 1px solid rgba(26, 26, 26, 0.1); } .section-title { font-size: 3rem; margin-bottom: 4rem; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 4rem; } .feature-card { padding: 3rem 2rem; border-top: 1px solid var(--text-charcoal); transition: transform 0.7s ease, border-color 0.7s ease; background: transparent; } .feature-card:hover { border-color: var(--accent-gold); transform: translateY(-10px); } .feature-icon { font-size: 2rem; margin-bottom: 2rem; color: var(--text-charcoal); } .feature-card h3 { font-size: 1.5rem; margin-bottom: 1rem; } /* Auth Forms */ .auth-container { max-width: 500px; margin: 4rem auto; padding: 4rem; background: var(--bg-alabaster); /* Ensure opacity */ border-top: 2px solid var(--text-charcoal); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.05); } .form-group { margin-bottom: 2rem; } .form-label { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 0.5rem; color: var(--text-grey); } .form-input { width: 100%; padding: 0.75rem 0; background: transparent; border: none; border-bottom: 1px solid var(--text-charcoal); font-family: var(--font-body); font-size: 1rem; color: var(--text-charcoal); transition: border-color 0.5s ease; border-radius: 0; } .form-input:focus { outline: none; border-color: var(--accent-gold); } .form-input::placeholder { font-family: var(--font-display); font-style: italic; color: #aaa; } .input-error { border-color: #ef4444; } .error-message { font-size: 0.75rem; color: #ef4444; margin-top: 0.5rem; display: none; } .error-message.visible { display: block; } .form-footer { margin-top: 3rem; text-align: center; font-size: 0.875rem; } .form-footer a { border-bottom: 1px solid transparent; } .form-footer a:hover { border-bottom-color: var(--accent-gold); } /* Animations */ .animate-enter { opacity: 0; animation: fadeUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } .delay-1 { animation-delay: 0.2s; } .delay-2 { animation-delay: 0.4s; } .delay-3 { animation-delay: 0.6s; } @keyframes fadeUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } /* Footer */ footer { padding: 4rem 0; border-top: 1px solid rgba(26, 26, 26, 0.1); text-align: center; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-grey); } /* Responsive */ @media (max-width: 768px) { .hero h1 { font-size: 3rem; } .grid-lines-container { display: none; } .nav-links { gap: 1rem; font-size: 0.7rem; } }