question / style.css
kappai's picture
Update style.css
899e32b verified
raw
history blame
9.7 kB
/* ─────────────────────────────────────────────────────────────
NEUROVIE – GLOBAL
───────────────────────────────────────────────────────────── */
:root {
--nv-bg: #f7f2ec;
--nv-card: #fffdf8;
--nv-border: #e5d8c7;
--nv-accent: #f38a6b;
--nv-accent-soft: #ffe4d4;
--nv-text-main: #262626;
--nv-text-muted: #6c6459;
--nv-radius-lg: 32px;
--nv-radius-md: 24px;
--nv-radius-sm: 18px;
}
/* Page layout */
.gradio-container {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text",
"Segoe UI", sans-serif;
background: radial-gradient(circle at top left, #fff6ee 0, #f7f2ec 50%, #f2ece6 100%);
max-width: 960px !important;
margin: 0 auto !important;
padding: 32px 0 40px 0;
position: relative;
}
/* Ambient blobs */
@keyframes nvBlobFloat {
0% {
transform: translate3d(0, 0, 0) scale(1);
opacity: 0.6;
}
50% {
transform: translate3d(10px, -8px, 0) scale(1.04);
opacity: 0.9;
}
100% {
transform: translate3d(0, 0, 0) scale(1);
opacity: 0.6;
}
}
.gradio-container::before,
.gradio-container::after {
content: "";
position: fixed;
width: 260px;
height: 260px;
border-radius: 999px;
z-index: -1;
filter: blur(3px);
animation: nvBlobFloat 14s ease-in-out infinite alternate;
}
.gradio-container::before {
top: -80px;
left: -60px;
background: radial-gradient(circle at 30% 30%, #ffd5c5, transparent 60%);
}
.gradio-container::after {
bottom: -120px;
right: -40px;
background: radial-gradient(circle at 70% 70%, #c3e4ff, transparent 60%);
animation-delay: 4s;
}
/* ─────────────────────────────────────────────────────────────
SHELL & TEXT
───────────────────────────────────────────────────────────── */
.nv-shell {
background: var(--nv-card);
border-radius: var(--nv-radius-lg);
border: 1px solid var(--nv-border);
box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12),
0 1px 0 rgba(255, 255, 255, 0.8) inset;
padding: 26px 24px 22px;
animation: nvCardIn 500ms ease-out;
}
@keyframes nvCardIn {
0% {
opacity: 0;
transform: translateY(8px) scale(0.98);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.nv-badge {
font-size: 0.78rem;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--nv-text-muted);
}
.nv-title {
font-size: 1.9rem;
font-weight: 650;
margin-top: 4px;
}
.nv-subtitle {
font-size: 0.95rem;
color: var(--nv-text-muted);
margin-top: 6px;
margin-bottom: 18px;
}
/* ─────────────────────────────────────────────────────────────
SECTIONS + LABELS
───────────────────────────────────────────────────────────── */
.nv-section {
background: #fbf6ee;
border-radius: var(--nv-radius-md);
border: 1px solid #e6dac7;
padding: 16px 16px 14px;
margin-bottom: 14px;
}
.nv-label {
font-size: 0.78rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #a29078;
margin-bottom: 8px;
}
/* ─────────────────────────────────────────────────────────────
PILLS (radios)
───────────────────────────────────────────────────────────── */
.nv-pills label {
border-radius: 999px !important;
border: 1px solid #decfbb !important;
padding: 6px 11px !important;
font-size: 0.84rem !important;
background: #fdf8f1;
transition:
background 150ms ease,
transform 120ms ease,
box-shadow 120ms ease;
}
.nv-pills input:checked + label {
background: linear-gradient(135deg, #ffe4d4, #ffd6c6) !important;
border-color: var(--nv-accent) !important;
color: var(--nv-text-main) !important;
box-shadow: 0 4px 10px rgba(243, 138, 107, 0.18);
transform: translateY(-1px);
}
/* ─────────────────────────────────────────────────────────────
BUTTON – card-game β€œbreathing” + press animation
───────────────────────────────────────────────────────────── */
@keyframes nvPulse {
0% {
transform: translateY(0) scale(1);
box-shadow: 0 10px 22px rgba(243, 138, 107, 0.3);
}
50% {
transform: translateY(-1px) scale(1.02);
box-shadow: 0 14px 26px rgba(243, 138, 107, 0.4);
}
100% {
transform: translateY(0) scale(1);
box-shadow: 0 10px 22px rgba(243, 138, 107, 0.3);
}
}
/* Style the main Gradio button */
[data-testid="button"] > button {
border-radius: 999px !important;
padding: 10px 20px !important;
font-weight: 600 !important;
font-size: 0.96rem !important;
border: none !important;
background:
radial-gradient(circle at 0 0, #ffe4d4, transparent 55%),
linear-gradient(135deg, #f6a37d, #f38a6b) !important;
color: #fff !important;
animation: nvPulse 4s ease-in-out infinite;
transform-origin: center;
}
[data-testid="button"] > button:hover {
animation-duration: 1.4s;
}
[data-testid="button"] > button:active {
transform: translateY(1px) scale(0.99);
box-shadow: 0 6px 16px rgba(243, 138, 107, 0.35) !important;
}
/* ─────────────────────────────────────────────────────────────
CARD GRID + CARD ANIMATIONS
───────────────────────────────────────────────────────────── */
.nv-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
gap: 10px;
}
/* Deal-in animation (cards appearing) */
@keyframes nvCardDeal {
0% {
opacity: 0;
transform: translate3d(0, 16px, 0) rotate(-2deg) scale(0.7);
}
60% {
opacity: 1;
transform: translate3d(0, -4px, 0) rotate(1deg) scale(1.02);
}
100% {
opacity: 1;
transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
}
}
/* Hover "lift" + subtle wiggle */
@keyframes nvCardHoverWiggle {
0% {
transform: translateY(0) rotate(0deg) scale(1);
}
50% {
transform: translateY(-3px) rotate(0.4deg) scale(1.02);
}
100% {
transform: translateY(-2px) rotate(0deg) scale(1.01);
}
}
.nv-card {
border-radius: var(--nv-radius-sm);
padding: 10px 11px;
font-size: 0.9rem;
border: 1px solid rgba(0, 0, 0, 0.03);
box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
opacity: 0;
transform: scale(0.7);
animation: nvCardDeal 420ms ease-out forwards;
cursor: default;
transition:
box-shadow 160ms ease,
transform 160ms ease;
}
.nv-card:hover {
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.15);
animation: nvCardHoverWiggle 400ms ease-out forwards;
}
/* Category color themes */
.nv-card--cat-alimentation {
background: radial-gradient(circle at 0 0, #e3f7df 0, #ffffff 60%);
border-color: #c3e5bc;
}
.nv-card--cat-mouvement {
background: radial-gradient(circle at 0 0, #dbeeff 0, #ffffff 60%);
border-color: #b9d8ff;
}
.nv-card--cat-cerveau {
background: radial-gradient(circle at 0 0, #ffd6d6 0, #ffffff 60%);
border-color: #f7b6b6;
}
.nv-card--cat-liens {
background: radial-gradient(circle at 0 0, #ffead1 0, #ffffff 60%);
border-color: #f6d2a3;
}
.nv-card--cat-bien-etre {
background: radial-gradient(circle at 0 0, #ffe1f2 0, #ffffff 60%);
border-color: #f3c3e4;
}
.nv-card-title {
font-size: 0.72rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: #7c6a9a;
margin-bottom: 4px;
}
/* ─────────────────────────────────────────────────────────────
HIDE GRADIO LOADING / QUEUE STATUS
───────────────────────────────────────────────────────────── */
[data-testid="queue-status"],
[data-testid="progress-bar"],
[data-testid="block-info"] {
display: none !important;
}
/* also hide HF footer for a cleaner "game" feel */
footer {
display: none !important;
}
/* ─────────────────────────────────────────────────────────────
MOBILE
───────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
.nv-shell {
border-radius: 24px;
padding: 20px 16px 18px;
}
.nv-title {
font-size: 1.6rem;
}
.nv-section {
padding: 13px 12px 10px;
}
}