:root{--color-parchment: #f4e8d8;--color-parchment-dark: #e6d5bb;--color-leather: #5c4033;--color-leather-light: #8b6f47;--color-gold: #d4af37;--color-gold-dark: #b8941f;--color-burgundy: #800020;--color-burgundy-light: #a52a2a;--color-ink: #2b1810;--color-ink-faded: #5c4033;--color-shadow: rgba(43, 24, 16, .2);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--font-display: "Merriweather Sans", sans-serif;--font-body: "Merriweather", serif;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 2rem;--font-size-xxl: 3rem;--max-width: 1280px;--card-min-width: 300px;--content-max-width: 900px;--border-radius: 4px;--transition-fast: .2s ease;font-family:var(--font-body);line-height:1.6;color:var(--color-ink);background:linear-gradient(to bottom,var(--color-parchment) 0%,var(--color-parchment-dark) 100%);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh}#app{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-lg)}h1{font-family:var(--font-display);font-size:var(--font-size-xxl);line-height:1.2;margin-bottom:var(--spacing-lg);text-align:center;color:var(--color-ink-faded);text-shadow:2px 2px 4px var(--color-shadow);letter-spacing:.05em}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min-width),1fr));gap:var(--spacing-lg);margin-top:var(--spacing-lg)}.module-card{background:var(--color-parchment);border:1px solid var(--color-leather);border-radius:var(--border-radius);overflow:hidden;text-decoration:none;color:var(--color-ink);display:block;transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 4px 8px var(--color-shadow)}.module-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 16px var(--color-shadow);border-color:var(--color-gold-dark)}.card-content{display:flex;flex-direction:column;padding:var(--spacing-xs) var(--spacing-sm) 0}.preview-image{width:100%;height:auto;display:block}.module-title{padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-sm);margin:0;font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:700;text-align:center;color:var(--color-ink-faded);letter-spacing:.03em}.module-page{max-width:var(--content-max-width);margin:0 auto}.back-link{margin-bottom:var(--spacing-lg)}.back-link a{color:var(--color-ink-faded);text-decoration:none;font-weight:600;font-size:var(--font-size-base);transition:color var(--transition-fast)}.back-link a:hover{color:var(--color-ink-faded);text-decoration:underline}.module-content{background:var(--color-parchment);border:1px solid var(--color-leather);border-radius:var(--border-radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:0 4px 12px var(--color-shadow)}.module-content img{max-width:100%;height:auto;border-radius:var(--border-radius)}.module-content h1,.module-content h2{font-family:var(--font-display);color:var(--color-ink-faded);margin-top:var(--spacing-md);margin-bottom:var(--spacing-xs);letter-spacing:.03em}.module-content h1{font-size:var(--font-size-xl);border-bottom:2px solid var(--color-gold);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-md)}.module-content h2{font-size:var(--font-size-lg)}.module-content p{margin:var(--spacing-xs) 0;line-height:1.7}.module-content blockquote{border-left:4px solid var(--color-gold);padding-left:var(--spacing-sm);margin:var(--spacing-sm) 0;font-style:italic;color:var(--color-ink-faded);background:var(--color-parchment-dark);padding:var(--spacing-sm);border-radius:var(--border-radius)}.cta-footer{text-align:center;padding:var(--spacing-lg) 0}.cta-button{display:inline-block;background:linear-gradient(to bottom,var(--color-gold) 0%,var(--color-gold-dark) 100%);color:var(--color-ink);padding:var(--spacing-sm) var(--spacing-lg);border:1px solid var(--color-leather);border-radius:var(--border-radius);text-decoration:none;font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:700;letter-spacing:.05em;transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 4px 8px var(--color-shadow);text-shadow:1px 1px 2px rgba(255,255,255,.5)}.cta-button:hover{transform:translateY(-2px)}.loading{text-align:center;padding:var(--spacing-lg);color:var(--color-ink-faded);font-style:italic}
