| :root { |
| --hue: 27; |
| --sat: 69%; |
| --white: hsl(0, 0%, 100%); |
| --purple-primary: rgba(132, 0, 255, 1); |
| --purple-glow: rgba(132, 0, 255, 0.2); |
| --purple-border: rgba(132, 0, 255, 0.8); |
| --border-color: #392e4e; |
| --background-dark: #060010; |
| color-scheme: light dark; |
| } |
|
|
| .card-grid { |
| display: grid; |
| gap: 0.5em; |
| padding: 0.75em; |
| max-width: 54em; |
| font-size: clamp(1rem, 0.9rem + 0.5vw, 1.5rem); |
| } |
|
|
| .magic-bento-card { |
| display: flex; |
| flex-direction: column; |
| justify-content: space-between; |
| position: relative; |
| aspect-ratio: 4/3; |
| min-height: 200px; |
| width: 100%; |
| max-width: 100%; |
| padding: 1.25em; |
| border-radius: 20px; |
| border: 1px solid var(--border-color); |
| background: var(--background-dark); |
| font-weight: 300; |
| overflow: hidden; |
| transition: all 0.3s ease; |
|
|
| --glow-x: 50%; |
| --glow-y: 50%; |
| --glow-intensity: 0; |
| --glow-radius: 200px; |
| } |
|
|
| .magic-bento-card:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); |
| } |
|
|
| .magic-bento-card__header, |
| .magic-bento-card__content { |
| display: flex; |
| position: relative; |
| color: var(--white); |
| } |
|
|
| .magic-bento-card__header { |
| gap: 0.75em; |
| justify-content: space-between; |
| } |
|
|
| .magic-bento-card__content { |
| flex-direction: column; |
| } |
|
|
| .magic-bento-card__label { |
| font-size: 16px; |
| } |
|
|
| .magic-bento-card__title, |
| .magic-bento-card__description { |
| --clamp-title: 1; |
| --clamp-desc: 2; |
| } |
|
|
| .magic-bento-card__title { |
| font-weight: 400; |
| font-size: 16px; |
| margin: 0 0 0.25em; |
| } |
|
|
| .magic-bento-card__description { |
| font-size: 12px; |
| line-height: 1.2; |
| opacity: 0.9; |
| } |
|
|
| .magic-bento-card--text-autohide .magic-bento-card__title, |
| .magic-bento-card--text-autohide .magic-bento-card__description { |
| display: -webkit-box; |
| -webkit-box-orient: vertical; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| } |
|
|
| .magic-bento-card--text-autohide .magic-bento-card__title { |
| -webkit-line-clamp: var(--clamp-title); |
| line-clamp: var(--clamp-title); |
| } |
|
|
| .magic-bento-card--text-autohide .magic-bento-card__description { |
| -webkit-line-clamp: var(--clamp-desc); |
| line-clamp: var(--clamp-desc); |
| } |
|
|
| @media (max-width: 599px) { |
| .card-grid { |
| grid-template-columns: 1fr; |
| width: 90%; |
| margin: 0 auto; |
| padding: 0.5em; |
| } |
|
|
| .magic-bento-card { |
| width: 100%; |
| min-height: 180px; |
| } |
| } |
|
|
| @media (min-width: 600px) { |
| .card-grid { |
| grid-template-columns: repeat(2, 1fr); |
| } |
| } |
|
|
| @media (min-width: 1024px) { |
| .card-grid { |
| grid-template-columns: repeat(4, 1fr); |
| } |
|
|
| .magic-bento-card:nth-child(3) { |
| grid-column: span 2; |
| grid-row: span 2; |
| } |
|
|
| .magic-bento-card:nth-child(4) { |
| grid-column: 1 / span 2; |
| grid-row: 2 / span 2; |
| } |
|
|
| .magic-bento-card:nth-child(6) { |
| grid-column: 4; |
| grid-row: 3; |
| } |
| } |
|
|
| |
| .magic-bento-card--border-glow::after { |
| content: ''; |
| position: absolute; |
| inset: 0; |
| padding: 6px; |
| background: radial-gradient( |
| var(--glow-radius) circle at var(--glow-x) var(--glow-y), |
| rgba(132, 0, 255, calc(var(--glow-intensity) * 0.8)) 0%, |
| rgba(132, 0, 255, calc(var(--glow-intensity) * 0.4)) 30%, |
| transparent 60% |
| ); |
| border-radius: inherit; |
| -webkit-mask: |
| linear-gradient(#fff 0 0) content-box, |
| linear-gradient(#fff 0 0); |
| -webkit-mask-composite: xor; |
| mask: |
| linear-gradient(#fff 0 0) content-box, |
| linear-gradient(#fff 0 0); |
| mask-composite: exclude; |
| pointer-events: none; |
| opacity: 1; |
| transition: opacity 0.3s ease; |
| z-index: 1; |
| } |
|
|
| .magic-bento-card--border-glow:hover::after { |
| opacity: 1; |
| } |
|
|
| .magic-bento-card--border-glow:hover { |
| box-shadow: |
| 0 4px 20px rgba(46, 24, 78, 0.4), |
| 0 0 30px var(--purple-glow); |
| } |
|
|
| .particle-container { |
| position: relative; |
| overflow: hidden; |
| } |
|
|
| .particle::before { |
| content: ''; |
| position: absolute; |
| top: -2px; |
| left: -2px; |
| right: -2px; |
| bottom: -2px; |
| background: rgba(132, 0, 255, 0.2); |
| border-radius: 50%; |
| z-index: -1; |
| } |
|
|
| .particle-container:hover { |
| box-shadow: |
| 0 4px 20px rgba(46, 24, 78, 0.2), |
| 0 0 30px var(--purple-glow); |
| } |
|
|
| |
| .global-spotlight { |
| mix-blend-mode: screen; |
| will-change: transform, opacity; |
| z-index: 200 !important; |
| pointer-events: none; |
| } |
|
|
| .bento-section { |
| position: relative; |
| user-select: none; |
| } |
|
|