CSS
/* ─── 08 Aurum Finance Dashboard — champagne luxury banking ───────── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Josefin+Sans:wght@300;400;600&display=swap');
.nm-fin {
--nm-fin-bg: #ede8df;
--nm-fin-sd: #cdc8bc;
--nm-fin-sl: #fff8f0;
--nm-fin-ib: #e5e0d6;
--nm-fin-gld: #c9a84c;
--nm-fin-gl2: #e8c870;
--nm-fin-gl3: #9a7a2c;
--nm-fin-txt: #7a7268;
--nm-fin-txt2:#2a2018;
--nm-fin-red: #c05858;
--nm-fin-grn: #4a8a5a;
--nm-fin-neu: 10px 10px 24px var(--nm-fin-sd), -10px -10px 24px var(--nm-fin-sl);
--nm-fin-neu-in: inset 7px 7px 16px var(--nm-fin-sd), inset -7px -7px 16px var(--nm-fin-sl);
--nm-fin-neu-sm: 6px 6px 14px var(--nm-fin-sd), -6px -6px 14px var(--nm-fin-sl);
--nm-fin-neu-sm-in: inset 4px 4px 10px var(--nm-fin-sd), inset -4px -4px 10px var(--nm-fin-sl);
position: relative;
width: 100%;
min-height: 940px;
background: var(--nm-fin-bg);
font-family: 'Josefin Sans', system-ui, sans-serif;
color: var(--nm-fin-txt);
display: flex;
align-items: center;
justify-content: center;
padding: 32px 16px;
overflow: hidden;
box-sizing: border-box;
}
.nm-fin *,
.nm-fin *::before,
.nm-fin *::after { box-sizing: border-box; }
.nm-fin .card {
position: relative;
width: 100%;
max-width: 860px;
background: var(--nm-fin-bg);
border-radius: 44px;
padding: 40px 36px;
box-shadow: 22px 22px 54px var(--nm-fin-sd), -22px -22px 54px var(--nm-fin-sl);
display: grid;
grid-template-columns: 340px 1fr;
gap: 28px;
}
.nm-fin .tag {
font-size: 9px;
font-weight: 600;
letter-spacing: 3.5px;
text-transform: uppercase;
color: var(--nm-fin-txt);
opacity: 0.5;
margin-bottom: 16px;
}
.nm-fin .left-col,
.nm-fin .right-col {
display: flex;
flex-direction: column;
gap: 22px;
}
/* Credit card */
.nm-fin .card-wrap {
position: relative;
perspective: 800px;
}
.nm-fin .credit-card {
width: 100%;
height: 200px;
border-radius: 22px;
position: relative;
overflow: hidden;
cursor: pointer;
transform-style: preserve-3d;
transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 16px 16px 36px rgba(0, 0, 0, 0.28), -8px -8px 20px rgba(255, 255, 255, 0.06);
}
.nm-fin .card-wrap:hover .credit-card { transform: rotateY(6deg) rotateX(-3deg); }
.nm-fin .card-face {
position: absolute;
inset: 0;
background: linear-gradient(135deg, #1a1628 0%, #2a2040 40%, #1e1430 70%, #2e2848 100%);
}
.nm-fin .card-face::before {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
mix-blend-mode: overlay;
opacity: 0.5;
}
.nm-fin .card-shimmer {
position: absolute;
top: -50%;
left: -60%;
width: 50%;
height: 200%;
background: linear-gradient(105deg,
transparent 0%,
rgba(201, 168, 76, 0.04) 40%,
rgba(232, 200, 112, 0.12) 50%,
rgba(201, 168, 76, 0.04) 60%,
transparent 100%);
transform: skewX(-15deg);
animation: nm-fin-shimmer 4s ease-in-out infinite;
}
@keyframes nm-fin-shimmer {
0%, 100% { left: -60%; }
50% { left: 110%; }
}
.nm-fin .card-content {
position: absolute;
inset: 0;
padding: 22px 26px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.nm-fin .card-bank {
font-family: 'Cormorant Garamond', Georgia, serif;
font-size: 22px;
font-weight: 700;
color: rgba(255, 255, 255, 0.95);
letter-spacing: 2px;
display: flex;
align-items: center;
justify-content: space-between;
}
.nm-fin .card-bank-sub {
font-family: 'Josefin Sans', system-ui, sans-serif;
font-size: 8px;
letter-spacing: 4px;
color: rgba(201, 168, 76, 0.8);
text-transform: uppercase;
margin-top: 2px;
}
.nm-fin .contactless { width: 24px; height: 24px; opacity: 0.7; }
.nm-fin .chip-wrap { display: flex; align-items: center; gap: 16px; }
.nm-fin .chip {
width: 44px;
height: 34px;
border-radius: 6px;
background: linear-gradient(145deg, #e8c870, #b88a30, #e0c060, #c8a040);
position: relative;
overflow: hidden;
box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.4), 2px 2px 4px rgba(0, 0, 0, 0.3);
}
.nm-fin .chip::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 26px;
height: 20px;
border: 1.5px solid rgba(180, 140, 40, 0.6);
border-radius: 3px;
}
.nm-fin .chip::after {
content: '';
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 1px;
background: rgba(180, 140, 40, 0.5);
transform: translateY(-50%);
}
.nm-fin .chip-lines {
position: absolute;
top: 0;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 1.5px;
background: rgba(180, 140, 40, 0.5);
}
.nm-fin .card-nfc {
opacity: 0.5;
font-size: 18px;
color: rgba(201, 168, 76, 0.8);
}
.nm-fin .card-number {
font-family: 'Josefin Sans', system-ui, sans-serif;
font-size: 17px;
font-weight: 300;
letter-spacing: 4px;
color: rgba(255, 255, 255, 0.85);
display: flex;
gap: 18px;
}
.nm-fin .card-number .masked {
letter-spacing: 3px;
color: rgba(201, 168, 76, 0.6);
}
.nm-fin .card-footer {
display: flex;
justify-content: space-between;
align-items: flex-end;
}
.nm-fin .card-holder-label,
.nm-fin .card-expiry-label {
font-size: 8px;
letter-spacing: 2.5px;
text-transform: uppercase;
color: rgba(201, 168, 76, 0.5);
margin-bottom: 3px;
}
.nm-fin .card-expiry-label { text-align: right; }
.nm-fin .card-holder-name,
.nm-fin .card-expiry-val {
font-family: 'Josefin Sans', system-ui, sans-serif;
font-size: 13px;
font-weight: 600;
letter-spacing: 2px;
color: rgba(255, 255, 255, 0.9);
text-transform: uppercase;
}
.nm-fin .card-expiry-val { text-align: right; }
.nm-fin .visa-logo {
font-family: 'Cormorant Garamond', Georgia, serif;
font-size: 26px;
font-style: italic;
font-weight: 700;
color: rgba(255, 255, 255, 0.9);
letter-spacing: -1px;
}
/* Balance card */
.nm-fin .balance-card {
background: var(--nm-fin-bg);
border-radius: 24px;
padding: 20px 22px;
box-shadow: var(--nm-fin-neu-in);
}
.nm-fin .balance-label {
font-size: 9px;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--nm-fin-txt);
margin-bottom: 8px;
}
.nm-fin .balance-amount {
font-family: 'Cormorant Garamond', Georgia, serif;
font-size: 38px;
font-weight: 700;
color: var(--nm-fin-txt2);
letter-spacing: -1px;
line-height: 1;
}
.nm-fin .balance-amount .currency { font-size: 22px; color: var(--nm-fin-gld); }
.nm-fin .balance-cents { font-size: 22px; color: var(--nm-fin-txt); }
.nm-fin .balance-change {
font-size: 12px;
font-weight: 600;
margin-top: 6px;
color: var(--nm-fin-grn);
display: flex;
align-items: center;
gap: 6px;
}
.nm-fin .balance-change-sub { color: var(--nm-fin-txt); font-weight: 400; }
/* Stat trio */
.nm-fin .stat-trio { display: flex; gap: 12px; }
.nm-fin .stat-tile {
flex: 1;
background: var(--nm-fin-bg);
border-radius: 18px;
padding: 14px 12px;
box-shadow: var(--nm-fin-neu-sm);
text-align: center;
}
.nm-fin .stat-icon { font-size: 18px; margin-bottom: 6px; }
.nm-fin .stat-val {
font-family: 'Cormorant Garamond', Georgia, serif;
font-size: 20px;
font-weight: 700;
color: var(--nm-fin-txt2);
}
.nm-fin .stat-val-grn { color: var(--nm-fin-grn); }
.nm-fin .stat-val-red { color: var(--nm-fin-red); }
.nm-fin .stat-val-gld { color: var(--nm-fin-gld); }
.nm-fin .stat-name {
font-size: 9px;
letter-spacing: 2px;
text-transform: uppercase;
color: var(--nm-fin-txt);
margin-top: 2px;
}
/* Right column: spending rings */
.nm-fin .spend-card {
background: var(--nm-fin-bg);
border-radius: 24px;
padding: 20px;
box-shadow: var(--nm-fin-neu);
display: flex;
gap: 20px;
align-items: center;
}
.nm-fin .ring-wrap {
position: relative;
width: 88px;
height: 88px;
flex-shrink: 0;
}
.nm-fin .ring-wrap svg { width: 100%; height: 100%; }
.nm-fin .ring-center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
.nm-fin .ring-pct {
font-family: 'Cormorant Garamond', Georgia, serif;
font-size: 18px;
font-weight: 700;
color: var(--nm-fin-txt2);
}
.nm-fin .ring-sub {
font-size: 8px;
letter-spacing: 1px;
text-transform: uppercase;
color: var(--nm-fin-txt);
}
.nm-fin .spend-info { flex: 1; }
.nm-fin .spend-cats { display: flex; flex-direction: column; gap: 8px; }
.nm-fin .cat-row { display: flex; align-items: center; gap: 10px; }
.nm-fin .cat-dot {
width: 8px;
height: 8px;
border-radius: 50%;
flex-shrink: 0;
}
.nm-fin .cat-dot-gld { background: var(--nm-fin-gld); }
.nm-fin .cat-dot-red { background: var(--nm-fin-red); }
.nm-fin .cat-dot-grn { background: var(--nm-fin-grn); }
.nm-fin .cat-dot-txt { background: var(--nm-fin-txt); }
.nm-fin .cat-name {
font-size: 12px;
font-weight: 600;
color: var(--nm-fin-txt2);
flex: 1;
}
.nm-fin .cat-bar-wrap {
flex: 2;
height: 5px;
border-radius: 3px;
background: var(--nm-fin-ib);
box-shadow: var(--nm-fin-neu-sm-in);
}
.nm-fin .cat-bar { height: 100%; border-radius: 3px; }
.nm-fin .cat-bar-gld { background: var(--nm-fin-gld); }
.nm-fin .cat-bar-red { background: var(--nm-fin-red); }
.nm-fin .cat-bar-grn { background: var(--nm-fin-grn); }
.nm-fin .cat-bar-txt { background: var(--nm-fin-txt); }
.nm-fin .cat-amt {
font-size: 11px;
color: var(--nm-fin-txt);
font-weight: 600;
font-family: 'Josefin Sans', system-ui, sans-serif;
width: 50px;
text-align: right;
}
/* Transactions */
.nm-fin .tx-card {
background: var(--nm-fin-bg);
border-radius: 24px;
padding: 20px;
box-shadow: var(--nm-fin-neu);
flex: 1;
}
.nm-fin .tx-list { display: flex; flex-direction: column; gap: 2px; }
.nm-fin .tx-item {
display: flex;
align-items: center;
gap: 14px;
padding: 10px 12px;
border-radius: 14px;
transition: all 0.2s;
cursor: pointer;
}
.nm-fin .tx-item:hover {
background: var(--nm-fin-ib);
box-shadow: var(--nm-fin-neu-sm-in);
}
.nm-fin .tx-icon-wrap {
width: 38px;
height: 38px;
border-radius: 12px;
background: var(--nm-fin-bg);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 18px;
box-shadow: var(--nm-fin-neu-sm);
flex-shrink: 0;
}
.nm-fin .tx-meta { flex: 1; }
.nm-fin .tx-name {
font-size: 13px;
font-weight: 600;
color: var(--nm-fin-txt2);
}
.nm-fin .tx-date {
font-size: 10px;
color: var(--nm-fin-txt);
margin-top: 2px;
letter-spacing: 0.3px;
}
.nm-fin .tx-amount { text-align: right; }
.nm-fin .tx-val {
font-family: 'Cormorant Garamond', Georgia, serif;
font-size: 16px;
font-weight: 700;
}
.nm-fin .tx-val.debit { color: var(--nm-fin-red); }
.nm-fin .tx-val.credit { color: var(--nm-fin-grn); }
.nm-fin .tx-cat {
font-size: 9px;
color: var(--nm-fin-txt);
letter-spacing: 1px;
text-transform: uppercase;
margin-top: 2px;
}
/* Quick actions */
.nm-fin .actions-row { display: flex; gap: 10px; flex-wrap: wrap; }
.nm-fin .action-btn {
flex: 1;
min-width: 80px;
background: var(--nm-fin-bg);
border: none;
cursor: pointer;
border-radius: 18px;
padding: 14px 10px 12px;
box-shadow: var(--nm-fin-neu-sm);
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
transition: all 0.18s ease;
font-family: 'Josefin Sans', system-ui, sans-serif;
}
.nm-fin .action-btn:hover {
box-shadow: 8px 8px 18px var(--nm-fin-sd), -8px -8px 18px var(--nm-fin-sl);
transform: translateY(-1px);
}
.nm-fin .action-btn:active {
box-shadow: var(--nm-fin-neu-sm-in);
transform: scale(0.97);
}
.nm-fin .action-icon { font-size: 20px; }
.nm-fin .action-name {
font-size: 10px;
font-weight: 600;
letter-spacing: 1.5px;
text-transform: uppercase;
color: var(--nm-fin-txt);
}
.nm-fin .action-btn.accent {
background: linear-gradient(145deg, var(--nm-fin-gld), var(--nm-fin-gl3));
box-shadow: 8px 8px 18px rgba(180, 130, 40, 0.3), -6px -6px 14px var(--nm-fin-sl);
}
.nm-fin .action-btn.accent .action-name,
.nm-fin .action-btn.accent .action-icon { color: rgba(255, 248, 220, 0.9); }
.nm-fin .action-btn.accent:active { box-shadow: inset 4px 4px 10px rgba(0, 0, 0, 0.2); }
@media (max-width: 880px) {
.nm-fin .card { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
.nm-fin .card-shimmer,
.nm-fin .credit-card,
.nm-fin .action-btn { transition: none; animation: none; }
.nm-fin .card-wrap:hover .credit-card { transform: none; }
}