@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&family=Merriweather:wght@400;700&family=Poppins:wght@400;600&family=JetBrains+Mono:wght@400;600&family=Roboto:wght@400;500;700&family=Lato:wght@400;700&family=Montserrat:wght@500;600&family=Nunito:wght@400;600&family=Libre+Baskerville:wght@400;700&display=swap");:root{--ink:#1c1b22;--ink-soft:#4a4852;--paper:#f3f2ef;--canvas:#fff;--line:#dedad2;--accent:#4b3f72;--accent-strong:#352c53;--accent-soft:#ece9f6;--gold:#b8902e;--gold-soft:#f6ecd6;--danger:#a13d3d;--muted:#8a8790;--gradient-accent:linear-gradient(135deg,#4b3f72,#6a5596 55%,#8a6fb0);--gradient-gold:linear-gradient(135deg,#b8902e,#d4ac4a);--glass-bg:hsla(0,0%,100%,.72);--glass-border:hsla(0,0%,100%,.5);--font-display:"Source Serif 4",Georgia,serif;--font-ui:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--shadow-xs:0 1px 2px rgba(28,27,34,.05);--shadow-sm:0 2px 8px rgba(28,27,34,.06);--shadow-md:0 8px 24px rgba(28,27,34,.09),0 2px 6px rgba(28,27,34,.06);--shadow-lg:0 20px 48px rgba(28,27,34,.14),0 6px 16px rgba(28,27,34,.08);--shadow-glow:0 0 0 1px rgba(75,63,114,.08),0 12px 32px rgba(75,63,114,.16);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-smooth:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box}body,html{padding:0;margin:0}body{font-family:var(--font-ui);background:var(--paper);-webkit-font-smoothing:antialiased}body,h1,h2,h3{color:var(--ink)}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0}a{color:inherit}button{font-family:var(--font-ui);cursor:pointer}::selection{background:var(--gold);color:var(--canvas)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes softPulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes springIn{0%{opacity:0;transform:scale(.9) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes floatSoft{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}