diff --git a/public/css/tractatus-theme.css b/public/css/tractatus-theme.css index 498eee47..56f37d69 100644 --- a/public/css/tractatus-theme.css +++ b/public/css/tractatus-theme.css @@ -823,6 +823,112 @@ h3 { letter-spacing: -0.015em; } text-decoration: underline; } +/* ======================================== + * SCROLL ANIMATIONS + * Intersection Observer-based scroll animations + * ======================================== */ + +/* Scroll animation initial states (before visible) */ +.animate-on-scroll { + transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), + transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* Fade in animation */ +.animate-on-scroll[data-animation="fade-in"] { + opacity: 0; +} + +.animate-on-scroll[data-animation="fade-in"].is-visible { + opacity: 1; +} + +/* Slide up animation */ +.animate-on-scroll[data-animation="slide-up"] { + opacity: 0; + transform: translateY(2rem); +} + +.animate-on-scroll[data-animation="slide-up"].is-visible { + opacity: 1; + transform: translateY(0); +} + +/* Slide down animation */ +.animate-on-scroll[data-animation="slide-down"] { + opacity: 0; + transform: translateY(-2rem); +} + +.animate-on-scroll[data-animation="slide-down"].is-visible { + opacity: 1; + transform: translateY(0); +} + +/* Slide left animation */ +.animate-on-scroll[data-animation="slide-left"] { + opacity: 0; + transform: translateX(2rem); +} + +.animate-on-scroll[data-animation="slide-left"].is-visible { + opacity: 1; + transform: translateX(0); +} + +/* Slide right animation */ +.animate-on-scroll[data-animation="slide-right"] { + opacity: 0; + transform: translateX(-2rem); +} + +.animate-on-scroll[data-animation="slide-right"].is-visible { + opacity: 1; + transform: translateX(0); +} + +/* Scale in animation */ +.animate-on-scroll[data-animation="scale-in"] { + opacity: 0; + transform: scale(0.95); +} + +.animate-on-scroll[data-animation="scale-in"].is-visible { + opacity: 1; + transform: scale(1); +} + +/* Rotate in animation */ +.animate-on-scroll[data-animation="rotate-in"] { + opacity: 0; + transform: rotate(12deg) scale(0.95); +} + +.animate-on-scroll[data-animation="rotate-in"].is-visible { + opacity: 1; + transform: rotate(0deg) scale(1); +} + +/* Default animation if no data-animation specified */ +.animate-on-scroll:not([data-animation]) { + opacity: 0; + transform: translateY(2rem); +} + +.animate-on-scroll:not([data-animation]).is-visible { + opacity: 1; + transform: translateY(0); +} + +/* Respect user's motion preferences for scroll animations */ +@media (prefers-reduced-motion: reduce) { + .animate-on-scroll { + opacity: 1 !important; + transform: none !important; + transition: none !important; + } +} + /* ======================================== * DARK MODE SUPPORT (Future) * Placeholder for dark mode implementation diff --git a/public/index.html b/public/index.html index d25632c3..3eb50b9b 100644 --- a/public/index.html +++ b/public/index.html @@ -86,7 +86,7 @@
-
+

A Starting Point

Instead of hoping AI systems "behave correctly," we propose structural constraints @@ -106,7 +106,7 @@ We recognize this is one small step in addressing AI safety challenges. Explore

- +
For AI safety researchers, academics, and scientists investigating LLM failure modes and governance architectures @@ -154,7 +154,7 @@ Explore the theoretical foundations, architectural constraints, and scholarly co - +
For software engineers, ML engineers, and technical teams building production AI systems @@ -202,7 +202,7 @@ Get hands-on with implementation guides, API documentation, and reference code e - +
For AI executives, research directors, startup founders, and strategic decision makers setting AI safety policy @@ -257,11 +257,11 @@ Navigate the business case, compliance requirements, and competitive advantages
-

Framework Capabilities

+

Framework Capabilities

-
+
-
+
-
+
-
+
-
+
-
+