/* MainLayout.razor.css */ .water-background { height: 100vh; width: 100vw; overflow: hidden; position: relative; background-color: #1e2d4a; /* Base slate */ } /* Base class for all floating organic shapes */ .blotch { position: absolute; border-radius: 50%; filter: blur(80px); z-index: 0; } /* 1. Main Light Blotch - Now anchored Top-Left */ .blotch-light-main { width: 60vw; height: 60vh; background: #8892b0; top: -10%; left: -10%; /* Sped up by ~0.9% from 25s to 24.7s */ animation: driftLight 24.7s infinite ease-in-out alternate; } /* 2. Main Dark Blotch - Now anchored Bottom-Right */ .blotch-dark-main { width: 70vw; height: 70vh; background: #0a192f; bottom: -10%; right: -10%; /* Sped up by ~0.9% from 20s to 19.8s */ animation: driftDark 19.8s infinite ease-in-out alternate; } /* 3. New Accent Blotch - Mid-size, mid-navy */ .blotch-accent-1 { width: 40vw; height: 40vh; background: #172a45; top: 30%; right: 20%; animation: driftAccentOne 22s infinite ease-in-out alternate; } /* 4. New Accent Blotch - Smaller, lighter shade for depth */ .blotch-accent-2 { width: 30vw; height: 35vh; background: #2c3e50; bottom: 20%; left: 20%; animation: driftAccentTwo 28s infinite ease-in-out alternate; } /* Denser Pixel Packing (SVG Noise) */ .noise-overlay { position: absolute; inset: 0; z-index: 1; /* Sits above the blotches, below the glass */ opacity: 0.06; /* Keep this low; just enough to texture the gradient */ /* An inline SVG generating fractal noise */ 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.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); pointer-events: none; /* Ensures clicks pass through to the UI */ } /* The Glass Layer */ .glass-panel { position: absolute; inset: 0; background: rgba(255, 255, 255, 0.03); box-shadow: inset 0 0 80px rgba(255, 255, 255, 0.05); backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(30px); z-index: 2; display: flex; flex-direction: column; } .content-area { z-index: 3; flex-grow: 1; height: 100%; width: 100%; overflow-y: hidden; padding: 2rem; } /* --- Animations --- */ @keyframes driftLight { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(10%, 15%) scale(1.15); } /* Pushes down and right */ } @keyframes driftDark { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(-15%, -10%) scale(1.1); } /* Pushes up and left */ } @keyframes driftAccentOne { 0% { transform: translate(0, 0) scale(0.9); } 100% { transform: translate(-20%, 20%) scale(1.2); } } @keyframes driftAccentTwo { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(25%, -15%) scale(0.85); } } /* --- Floating Top Bar --- */ .top-bar { display: flex; align-items: center; height: 60px; padding: 0 2rem; /* The Floating Magic */ margin: 1rem 1rem 0 1rem; /* 1.5rem top gap, 2rem left/right gap, 0 bottom gap */ border-radius: 10px; /* Smooth, rounded corners for the island effect */ /* The Glass Effect */ background: rgba(255, 255, 255, 0.04); box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.2); /* A subtle frosted edge all the way around to define the shape */ border: 1px solid rgba(255, 255, 255, 0.08); z-index: 10; } .brand-text { color: #f8f9fa; font-size: 1.25rem; font-weight: 600; letter-spacing: 0.5px; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } /* --- Top Navigation Icons --- */ .top-nav-icons { display: flex; align-items: center; gap: 1.5rem; /* Even spacing between icons */ margin-left: auto; /* Pushes the nav block to the right */ } /* The transparent button wrappers */ .icon-btn { background: transparent; border: none; padding: 0.5rem; cursor: pointer; /* Set the icon color to a slightly muted off-white */ color: rgba(255, 255, 255, 0.6); display: flex; align-items: center; justify-content: center; border-radius: 8px; /* For a subtle hover background if needed later */ /* Smooth out the hover animations */ transition: color 0.2s ease, transform 0.2s ease; } /* Hover interactions */ .icon-btn:hover { /* Brightens to pure white and floats up slightly when moused over */ color: #ffffff; transform: translateY(-2px); } /* Ensure the SVG scales neatly */ .icon-btn svg { width: 22px; height: 22px; /* This ensures the stroke/fill matches the .icon-btn color */ stroke: currentColor; }