analyzer / static /style.css
GLAkavya's picture
Update static/style.css
ed0ded6 verified
: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; }
}
/* Background layers */
.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 */
.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 */
#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;
}
/* Layout */
.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)) }
/* Responsive */
@media (max-width: 900px){
.grid{ grid-template-columns: 1fr}
.charts{ grid-template-columns: 1fr}
.row{ grid-template-columns: 1fr 90px 80px}
}