g-loubna
Space: download weights from model repo
c5bce9d
/* Light mauve / blue gentle theme */
/* Core variables */
:root {
--bg-gradient: linear-gradient(135deg, #e3e9ff 0%, #d4dafc 35%, #c7d3fa 65%, #c0cef5 100%);
--panel-bg: rgba(255,255,255,0.55);
--panel-border: rgba(160,170,200,0.55);
--text-color: #1d2b3a;
--accent: #1d6fd4;
--accent-hover: #3d8af0;
--legend-bg: rgba(255,255,255,0.70);
--legend-border: rgba(140,160,190,0.55);
--scrollbar-bg: #d0d9f2;
--scrollbar-thumb: #9ab4e6;
--scrollbar-thumb-hover: #799dd9;
--radius: 18px;
--transition: 0.28s cubic-bezier(.4,.14,.3,1);
--font-stack: 'Inter','Segoe UI',system-ui,sans-serif;
}
body, .gradio-container {
background: var(--bg-gradient) !important;
font-family: var(--font-stack);
color: var(--text-color);
min-height: 100vh;
margin: 0;
padding-bottom: 40px;
transition: background 0.6s ease, color 0.4s ease;
-webkit-font-smoothing: antialiased;
}
/* Floating hero */
.hero-banner {
position: relative;
width: 100%;
border-radius: 24px;
margin: 18px 0 30px 0;
background: linear-gradient(125deg, #6289ff, #7d9dff 40%, #8bb1ff 75%);
box-shadow: 0 14px 40px -10px rgba(60,85,140,0.45), 0 4px 18px -6px rgba(60,85,140,0.35);
padding: 34px 30px;
overflow: hidden;
}
.hero-banner:before,
.hero-banner:after {
content:"";
position:absolute;
width:240px;
height:240px;
background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.55), transparent 70%);
top:-60px;
left:-60px;
filter: blur(10px);
opacity: 0.55;
pointer-events:none;
}
.hero-banner:after {
top:auto;
left:auto;
bottom:-70px;
right:-40px;
background: radial-gradient(circle at 70% 70%, rgba(255,255,255,0.45), transparent 65%);
opacity:0.45;
}
.floating {
animation: floatY 6.5s ease-in-out infinite;
}
@keyframes floatY {
0% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0px); }
}
.hero-title {
font-size: 2rem;
font-weight: 700;
letter-spacing: 1px;
color: #ffffff;
margin: 0;
line-height: 1.15;
text-shadow: 0 4px 18px rgba(0,0,0,0.35);
position: relative;
z-index: 2;
}
/* Tagline forced white */
.intro-tagline {
font-size: 1rem;
font-weight: 500;
letter-spacing: 0.5px;
margin: 0 6px 24px 6px;
color: #ffffff !important;
text-shadow: 0 2px 8px rgba(0,0,0,0.35);
background: rgba(255,255,255,0.10);
padding: 10px 16px;
border-radius: 14px;
display: inline-block;
backdrop-filter: blur(6px);
box-shadow: 0 6px 24px -10px rgba(60,85,140,0.50);
}
/* Panels */
.panel.glass {
background: var(--panel-bg) !important;
border: 1px solid var(--panel-border) !important;
backdrop-filter: blur(14px) saturate(160%);
border-radius: var(--radius) !important;
padding: 20px !important;
box-shadow: 0 10px 30px -12px rgba(70,80,120,0.45);
position: relative;
overflow: hidden;
}
.panel.glass:before {
content:"";
position:absolute;
inset:0;
background:
radial-gradient(circle at 80% 10%, rgba(255,255,255,0.35), transparent 55%),
radial-gradient(circle at 15% 85%, rgba(255,255,255,0.25), transparent 60%);
pointer-events:none;
opacity:0.55;
}
#view-mode-radio label {
background: rgba(255,255,255,0.55);
border: 1px solid rgba(140,160,190,0.6);
border-radius: 12px;
padding: 7px 12px;
cursor: pointer;
transition: var(--transition);
font-weight: 500;
font-size: 0.85rem;
color: #2d3f55;
box-shadow: 0 2px 8px -4px rgba(80,100,140,0.35);
}
#view-mode-radio label:hover {
background: rgba(255,255,255,0.75);
}
#view-mode-radio input:checked + label {
background: linear-gradient(135deg, var(--accent), var(--accent-hover));
border-color: rgba(255,255,255,0.8);
color: #fff;
box-shadow: 0 4px 15px -6px rgba(30,70,130,0.65);
}
#alpha-slider input[type=range] {
accent-color: var(--accent);
}
#run-btn, #clear-btn {
font-weight: 600;
border-radius: 16px !important;
padding: 12px 20px !important;
letter-spacing: 0.6px;
transition: var(--transition);
border: none !important;
font-size: 0.9rem;
}
#run-btn {
background: linear-gradient(135deg, var(--accent), var(--accent-hover)) !important;
color: #fff !important;
box-shadow: 0 8px 24px -10px rgba(30,70,130,0.65);
}
#run-btn:hover {
transform: translateY(-4px);
box-shadow: 0 12px 30px -10px rgba(30,70,130,0.75);
}
#clear-btn {
background: rgba(200,60,60,0.15) !important;
color: #9d2e2e !important;
border: 1px solid rgba(200,60,60,0.35) !important;
box-shadow: 0 4px 16px -10px rgba(200,60,60,0.55);
}
#clear-btn:hover {
background: rgba(200,60,60,0.30) !important;
color: #6a1212 !important;
transform: translateY(-2px);
}
.download-anchor {
font-size: 0.95rem;
font-weight: 600;
text-decoration: none;
color: var(--accent);
display: inline-block;
margin-top: 10px;
transition: var(--transition);
letter-spacing: 0.5px;
}
.download-anchor:hover {
color: var(--accent-hover);
text-shadow: 0 0 6px rgba(120,170,255,0.55);
}
/* Legend */
.legend-wrapper {
margin-top: 14px;
background: var(--legend-bg);
border: 1px solid var(--legend-border);
border-radius: 16px;
padding: 14px 16px 12px;
position: relative;
overflow: hidden;
backdrop-filter: blur(12px);
animation: fadeIn 0.5s ease;
box-shadow: 0 10px 28px -14px rgba(70,80,120,0.55);
}
.legend-header {
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 600;
letter-spacing: 0.6px;
color: var(--text-color);
margin-bottom: 6px;
}
.legend-toggle-btn {
background: rgba(255,255,255,0.55);
border: 1px solid rgba(130,150,180,0.55);
padding: 4px 11px;
cursor: pointer;
border-radius: 10px;
font-size: 0.78rem;
color: #2d3f55;
transition: var(--transition);
box-shadow: 0 3px 12px -6px rgba(60,80,120,0.35);
}
.legend-toggle-btn:hover {
background: rgba(255,255,255,0.8);
transform: translateY(-2px);
}
.legend-body {
display: flex;
flex-direction: column;
gap: 10px;
max-height: 240px;
overflow-y: auto;
padding-right: 4px;
transition: max-height 0.5s ease;
}
.legend-body.collapsed {
max-height: 0;
overflow: hidden;
padding: 0;
margin: 0;
}
.legend-item {
display: flex;
gap: 14px;
align-items: center;
background: rgba(255,255,255,0.55);
padding: 8px 12px;
border-radius: 14px;
border: 1px solid rgba(130,150,180,0.45);
position: relative;
backdrop-filter: blur(6px);
transition: var(--transition);
box-shadow: 0 4px 16px -10px rgba(60,80,120,0.4);
}
.legend-item:hover {
background: rgba(255,255,255,0.75);
transform: translateY(-3px);
}
.legend-color {
width: 42px;
height: 42px;
border-radius: 11px;
background: var(--c);
box-shadow: 0 4px 18px -8px var(--c);
border: 2px solid rgba(255,255,255,0.7);
position: relative;
}
.legend-color:after {
content:"";
position:absolute;
inset:0;
border-radius: 9px;
background: linear-gradient(140deg, rgba(255,255,255,0.40), transparent 70%);
mix-blend-mode: overlay;
}
.legend-meta {
display: flex;
flex-direction: column;
font-size: 0.78rem;
line-height: 1.1rem;
letter-spacing: 0.4px;
}
.legend-name {
font-weight: 600;
font-size: 0.9rem;
text-transform: uppercase;
color:#2e3f58;
}
.legend-stats {
display: flex;
gap: 12px;
font-size: 0.68rem;
opacity: 0.85;
color:#415671;
}
.legend-count { color: #9b6c10; }
.legend-pct { color: #115f9d; }
.legend-empty {
opacity: 0.65;
font-style: italic;
font-size: 0.9rem;
padding: 4px;
color:#2d3f55;
}
/* Scrollbars */
.legend-body::-webkit-scrollbar {
width: 9px;
}
.legend-body::-webkit-scrollbar-track {
background: var(--scrollbar-bg);
border-radius: 10px;
}
.legend-body::-webkit-scrollbar-thumb {
background: var(--scrollbar-thumb);
border-radius: 10px;
border: 1px solid rgba(255,255,255,0.4);
}
.legend-body::-webkit-scrollbar-thumb:hover {
background: var(--scrollbar-thumb-hover);
}
/* Images */
.gradio-image img, .gradio-image canvas {
border-radius: 16px !important;
box-shadow: 0 10px 32px -14px rgba(70,80,120,0.55);
}
/* Animations */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
/* Disabled slider style */
#alpha-slider input[disabled] {
filter: grayscale(75%);
cursor: not-allowed;
opacity: 0.6;
}
/* Markdown headings */
.markdown-body h4, .markdown-body h3, .markdown-body h2 {
color: #2d3f55;
}
/* Links */
a { color: var(--accent); }
a:hover { color: var(--accent-hover); text-decoration: underline; }
/* Responsive */
@media (max-width: 980px) {
.hero-banner { padding: 28px 22px; }
.hero-title { font-size: 1.55rem; }
#run-btn, #clear-btn { width: 100%; }
.legend-body { max-height: 200px; }
}
#bg-opacity-slider input[type=range] {
accent-color: var(--accent);
}
/* Disabled range (already present for alpha; ensure both look consistent) */
#bg-opacity-slider input[disabled] {
filter: grayscale(75%);
cursor: not-allowed;
opacity: 0.55;
}