|
|
:root{ |
|
|
--bg1:#0b1020; |
|
|
--bg2:#111735; |
|
|
--glass:rgba(255,255,255,0.06); |
|
|
--border:rgba(255,255,255,0.12); |
|
|
--text:#eaf2ff; |
|
|
--muted:#b9c4e4; |
|
|
--accent:#6ae3ff; |
|
|
--accent2:#9b8cff; |
|
|
--pos:#2ecc71; |
|
|
--neg:#ff5c7a; |
|
|
--neu:#ffd166; |
|
|
} |
|
|
|
|
|
*{box-sizing:border-box} |
|
|
html,body{height:100%} |
|
|
body{ |
|
|
margin:0; |
|
|
color:var(--text); |
|
|
background: radial-gradient(1200px 800px at 70% -10%, #1a2255 0%, transparent 70%), |
|
|
radial-gradient(800px 600px at -10% 110%, #2a1e5c 0%, transparent 70%), |
|
|
linear-gradient(180deg, var(--bg1), var(--bg2)); |
|
|
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji"; |
|
|
overflow-x:hidden; |
|
|
animation: fadeInBody 1s ease; |
|
|
} |
|
|
@keyframes fadeInBody { |
|
|
from { opacity:0; } |
|
|
to { opacity:1; } |
|
|
} |
|
|
|
|
|
|
|
|
.bg-gradient{ |
|
|
position:fixed; inset:0; pointer-events:none; |
|
|
background: |
|
|
radial-gradient(1000px 600px at 20% -10%, rgba(155,140,255,.25),transparent 60%), |
|
|
radial-gradient(900px 500px at 110% 120%, rgba(106,227,255,.18),transparent 60%); |
|
|
filter: blur(30px); |
|
|
animation: pulseGlow 8s ease-in-out infinite alternate; |
|
|
} |
|
|
@keyframes pulseGlow { |
|
|
from { opacity:.6; } |
|
|
to { opacity:1; } |
|
|
} |
|
|
|
|
|
.stars, .shooting-stars{ |
|
|
position:fixed; inset:0; pointer-events:none; overflow:hidden; z-index:0; |
|
|
} |
|
|
.stars::before, .stars::after{ |
|
|
content:""; |
|
|
position:absolute; inset:-200px; |
|
|
background: |
|
|
radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,.8), transparent 70%), |
|
|
radial-gradient(1.5px 1.5px at 70% 60%, rgba(255,255,255,.6), transparent 70%), |
|
|
radial-gradient(1.5px 1.5px at 40% 80%, rgba(255,255,255,.6), transparent 70%), |
|
|
radial-gradient(2px 2px at 85% 20%, rgba(255,255,255,.8), transparent 70%); |
|
|
animation: twinkle 8s linear infinite alternate; |
|
|
} |
|
|
@keyframes twinkle{ |
|
|
from{opacity:.6; transform:scale(1)} |
|
|
to{opacity:1; transform:scale(1.06)} |
|
|
} |
|
|
.shooting-stars::before{ |
|
|
content:""; |
|
|
position:absolute; |
|
|
top:-20vh; left:10vw; width:2px; height:2px; background:white; |
|
|
box-shadow: 0 0 12px 3px rgba(255,255,255,.8); |
|
|
transform: rotate(45deg); |
|
|
animation: shoot 6s linear infinite; |
|
|
opacity:.8; |
|
|
} |
|
|
@keyframes shoot{ |
|
|
0%{transform:translate(0,0) rotate(45deg); opacity:0} |
|
|
5%{opacity:1} |
|
|
70%{transform:translate(90vw,80vh) rotate(45deg); opacity:0} |
|
|
100%{opacity:0} |
|
|
} |
|
|
|
|
|
|
|
|
.planets{ position:fixed; inset:0; pointer-events:none; z-index:1;} |
|
|
.planet{ |
|
|
position:absolute; border-radius:50%; filter: blur(0.2px); |
|
|
opacity:.8; animation: float 12s ease-in-out infinite; |
|
|
background: radial-gradient(120px 120px at 40% 40%, rgba(255,255,255,.35), transparent 60%), |
|
|
radial-gradient(circle at 60% 60%, rgba(255,255,255,.08), rgba(255,255,255,.02)); |
|
|
border:1px solid rgba(255,255,255,.1); |
|
|
} |
|
|
.p1{ width:140px; height:140px; top:12vh; left:8vw; background-color:#5b6cff;} |
|
|
.p2{ width:90px; height:90px; bottom:14vh; right:10vw; background-color:#35c0ff; animation-duration: 14s;} |
|
|
.p3{ width:65px; height:65px; top:60vh; left:20vw; background-color:#ff7ad6; animation-duration: 11s;} |
|
|
@keyframes float{ |
|
|
0%,100%{ transform: translateY(-8px)} |
|
|
50%{ transform: translateY(8px)} |
|
|
} |
|
|
|
|
|
|
|
|
#parallax-cursor{ position:fixed; width:14px; height:14px; border-radius:50%; |
|
|
background: radial-gradient(circle, rgba(255,255,255,.9), transparent 60%); |
|
|
pointer-events:none; z-index:5; mix-blend-mode:screen; transform:translate(-50%,-50%); |
|
|
opacity:.0; transition: opacity .25s ease; |
|
|
} |
|
|
|
|
|
|
|
|
.container{ width:min(1100px, 92%); margin: 0 auto; position:relative; z-index:2;} |
|
|
header{ padding: 60px 0 20px; animation: slideDown 1s ease;} |
|
|
@keyframes slideDown { |
|
|
from { opacity:0; transform: translateY(-30px);} |
|
|
to { opacity:1; transform: translateY(0);} |
|
|
} |
|
|
.logo{ font-size: clamp(28px, 6vw, 56px); font-weight:900; letter-spacing:.6px; } |
|
|
.logo span{ |
|
|
background: linear-gradient(90deg, var(--accent), var(--accent2)); |
|
|
-webkit-background-clip:text; background-clip:text; color:transparent; |
|
|
text-shadow: 0 0 28px rgba(106,227,255,.35); |
|
|
animation: glowText 3s ease-in-out infinite alternate; |
|
|
} |
|
|
@keyframes glowText { |
|
|
from { text-shadow: 0 0 10px rgba(106,227,255,.25);} |
|
|
to { text-shadow: 0 0 26px rgba(155,140,255,.65);} |
|
|
} |
|
|
.subtitle{ color:var(--muted); margin-top:10px; max-width: 780px; line-height:1.5; animation: fadeIn 1.4s ease;} |
|
|
@keyframes fadeIn { from {opacity:0} to {opacity:1} } |
|
|
|
|
|
.card{ |
|
|
background: var(--glass); |
|
|
border: 1px solid var(--border); |
|
|
border-radius: 20px; |
|
|
padding: 22px; |
|
|
backdrop-filter: blur(10px); |
|
|
box-shadow: 0 15px 60px rgba(0,0,0,.35); |
|
|
transform: translateY(6px); |
|
|
animation: card-in .8s ease forwards; |
|
|
} |
|
|
@keyframes card-in{ to{ transform: translateY(0)} } |
|
|
|
|
|
.card-head{ display:flex; align-items:center; gap:12px; margin-bottom:12px;} |
|
|
.card-head .icon{ |
|
|
width:40px; height:40px; display:grid;place-items:center; |
|
|
border-radius:12px; background:linear-gradient(135deg, var(--accent2), var(--accent)); |
|
|
box-shadow: 0 8px 26px rgba(155,140,255,.35); |
|
|
font-weight:800; |
|
|
animation: rotateIcon 5s linear infinite; |
|
|
} |
|
|
@keyframes rotateIcon { |
|
|
0% { transform: rotate(0);} |
|
|
100% { transform: rotate(360deg);} |
|
|
} |
|
|
|
|
|
.grid{ display:grid; grid-template-columns: 1fr auto; gap:12px; margin-top:16px;} |
|
|
.form-group{ display:flex; flex-direction:column; gap:8px} |
|
|
.form-group.col-span{ grid-column: 1 / -1} |
|
|
label{ color:var(--muted); font-size:14px} |
|
|
input{ |
|
|
background: rgba(255,255,255,.05); border:1px solid var(--border); color:var(--text); |
|
|
padding:12px 14px; border-radius:12px; outline:none; transition:.2s; |
|
|
} |
|
|
input:focus{ border-color: var(--accent); box-shadow: 0 0 0 4px rgba(106,227,255,.18)} |
|
|
|
|
|
.btn{ |
|
|
position:relative; overflow:hidden; border:0; cursor:pointer; |
|
|
padding: 12px 16px; border-radius:14px; color:#0b1020; font-weight:800; |
|
|
background:linear-gradient(135deg, var(--accent), var(--accent2)); |
|
|
box-shadow: 0 10px 30px rgba(106,227,255,.35); |
|
|
transition: transform .25s ease, box-shadow .25s ease; |
|
|
} |
|
|
.btn:hover{ transform: translateY(-3px) scale(1.02); box-shadow: 0 15px 40px rgba(106,227,255,.45);} |
|
|
.btn:active{ transform: scale(.96);} |
|
|
.btn .btn-glow{ |
|
|
position:absolute; inset:-80% -40%; background: radial-gradient(circle, rgba(255,255,255,.6), transparent 60%); |
|
|
transform: translateX(-60%); animation: sweep 2.2s ease-in-out infinite; |
|
|
opacity:.5; |
|
|
} |
|
|
@keyframes sweep{ 50%{ transform: translateX(60%)} } |
|
|
|
|
|
.status{ display:flex; gap:12px; align-items:center; margin-top:14px; animation: fadeIn .6s ease;} |
|
|
.hidden{ display:none} |
|
|
.spinner{ |
|
|
width:20px; height:20px; border:2.5px solid rgba(255,255,255,.2); border-top-color:white; border-radius:50%; |
|
|
animation: spin .9s linear infinite; |
|
|
} |
|
|
@keyframes spin{to{ transform:rotate(360deg)}} |
|
|
.dots::after{ |
|
|
content:""; animation: dots 1.2s steps(3,end) infinite; |
|
|
} |
|
|
@keyframes dots{ 0%{content:"."} 33%{content:".."} 66%{content:"..."} } |
|
|
|
|
|
.meta{ margin-top:14px; display:grid; grid-template-columns: repeat(3,1fr); gap:10px; animation: fadeIn .8s ease;} |
|
|
.meta-item{ background: rgba(255,255,255,.04); border:1px solid var(--border); border-radius:12px; padding:12px; transition: transform .3s ease;} |
|
|
.meta-item:hover{ transform: scale(1.05);} |
|
|
.meta-label{ color:var(--muted); font-size:12px} |
|
|
.meta-value{ margin-top:4px; display:flex; gap:8px; flex-wrap:wrap} |
|
|
|
|
|
.chip{ |
|
|
display:inline-flex; align-items:center; gap:6px; |
|
|
border-radius:999px; padding:6px 10px; font-weight:700; font-size:12px; letter-spacing:.2px; |
|
|
background: rgba(255,255,255,.07); border:1px solid var(--border); |
|
|
animation: fadeIn .8s ease; |
|
|
} |
|
|
.chip-gemini{ color:#00E5FF; border-color: rgba(0,229,255,.4)} |
|
|
.chip-fallback{ color:#ff9ff3; border-color: rgba(255,159,243,.4)} |
|
|
|
|
|
.charts{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:14px; animation: fadeIn 1s ease;} |
|
|
.chart-card{ background: rgba(255,255,255,.04); border:1px solid var(--border); border-radius:12px; padding:10px; transition: transform .3s ease;} |
|
|
.chart-card:hover{ transform: translateY(-4px) scale(1.01);} |
|
|
.chart-card h3{ margin:6px 6px 8px; font-size:14px; color:var(--muted)} |
|
|
|
|
|
.table-card{ margin-top:14px; background: rgba(255,255,255,.04); border:1px solid var(--border); border-radius:12px; overflow:hidden; animation: fadeIn 1.2s ease;} |
|
|
.table-head{ |
|
|
display:flex; align-items:center; justify-content:space-between; padding:10px 12px; border-bottom:1px solid var(--border) |
|
|
} |
|
|
.table{ max-height: 360px; overflow:auto; animation: fadeIn .8s ease;} |
|
|
.row{ |
|
|
display:grid; grid-template-columns: 1fr 110px 90px; gap:10px; padding:10px 12px; |
|
|
border-bottom:1px dashed rgba(255,255,255,.08); |
|
|
transition: background .2s ease, transform .12s ease; |
|
|
animation: fadeInRow .6s ease; |
|
|
} |
|
|
@keyframes fadeInRow { |
|
|
from { opacity:0; transform: translateY(8px);} |
|
|
to { opacity:1; transform: translateY(0);} |
|
|
} |
|
|
.row:hover{ background: rgba(255,255,255,.03); transform: translateX(2px)} |
|
|
.cell{ font-size:14px; color:var(--text)} |
|
|
.badge{ padding:4px 10px; border-radius:999px; font-weight:800; font-size:12px} |
|
|
.badge.pos{ background: rgba(46,204,113,.15); color: var(--pos); border:1px solid rgba(46,204,113,.35); animation: pulseBadge 2s infinite;} |
|
|
.badge.neg{ background: rgba(255,92,122,.12); color: var(--neg); border:1px solid rgba(255,92,122,.35); animation: pulseBadge 2s infinite;} |
|
|
.badge.neu{ background: rgba(255,209,102,.12); color: var(--neu); border:1px solid rgba(255,209,102,.35); animation: pulseBadge 2s infinite;} |
|
|
@keyframes pulseBadge { |
|
|
0%,100% { transform: scale(1); opacity:1;} |
|
|
50% { transform: scale(1.08); opacity:.85;} |
|
|
} |
|
|
|
|
|
.footer{ text-align:center; padding:26px 12px 60px; color:var(--muted); animation: fadeIn 2s ease;} |
|
|
.signature{ letter-spacing:.4px} |
|
|
.kavya{ |
|
|
background: linear-gradient(90deg, #fff, var(--accent), var(--accent2)); |
|
|
-webkit-background-clip:text; background-clip:text; color:transparent; |
|
|
text-shadow: 0 0 24px rgba(155,140,255,.45); |
|
|
animation: glowText 4s ease-in-out infinite alternate; |
|
|
} |
|
|
.heart{ filter: drop-shadow(0 0 10px rgba(255,150,200,.6)) } |
|
|
|
|
|
|
|
|
@media (max-width: 900px){ |
|
|
.grid{ grid-template-columns: 1fr} |
|
|
.charts{ grid-template-columns: 1fr} |
|
|
.row{ grid-template-columns: 1fr 90px 80px} |
|
|
} |
|
|
|