: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:.75em;padding:.75em;max-width:1000px;margin:0 auto;font-size:clamp(1rem,.9rem + .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 .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,.15)}.magic-bento-card__content,.magic-bento-card__header{display:flex;position:relative;color:var(--white)}.magic-bento-card__header{gap:.75em;justify-content:space-between}.magic-bento-card__content{flex-direction:column}.magic-bento-card__label{font-size:16px}.magic-bento-card__description,.magic-bento-card__title{--clamp-title:1;--clamp-desc:2}.magic-bento-card__title{font-weight:400;font-size:16px;margin:0 0 .25em}.magic-bento-card__description{font-size:12px;line-height:1.2;opacity:.9}.magic-bento-card--text-autohide .magic-bento-card__description,.magic-bento-card--text-autohide .magic-bento-card__title{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:.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(255,255,255,calc(var(--glow-intensity) * .4)) 0,rgba(255,255,255,calc(var(--glow-intensity) * .2)) 30%,transparent 60%);border-radius:inherit;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:1;transition:opacity .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(255,255,255,.1),0 0 30px rgba(255,255,255,.05)}.particle-container{position:relative;overflow:hidden}.particle:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:rgba(255,255,255,.2);border-radius:50%;z-index:-1}.particle-container:hover{box-shadow:0 4px 20px rgba(255,255,255,.05),0 0 30px rgba(255,255,255,.05)}.global-spotlight{mix-blend-mode:screen;will-change:transform,opacity;z-index:200!important;pointer-events:none}.bento-section{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.logoloop{position:relative;--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#ffffff}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme:dark){.logoloop{--logoloop-fadeColorAuto:#0b0b0b}}.logoloop__track{display:flex;width:-moz-max-content;width:max-content;will-change:transform;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;z-index:0}.logoloop--vertical .logoloop__track{flex-direction:column;height:-moz-max-content;height:max-content;width:100%}.logoloop__list{display:flex;align-items:center}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{flex:0 0 auto;margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{display:inline-flex;align-items:center}.logoloop__item img{height:var(--logoloop-logoHeight);width:auto;display:block;-o-object-fit:contain;object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover .logoloop__node,.logoloop--scale-hover .logoloop__item:hover img{transform:scale(1.2);transform-origin:center center}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{display:inline-flex;align-items:center;text-decoration:none;border-radius:4px;transition:opacity .2s ease}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline:2px solid currentColor;outline-offset:2px}.logoloop--fade:after,.logoloop--fade:before{content:"";position:absolute;top:0;bottom:0;width:clamp(24px,8%,120px);pointer-events:none;z-index:10}.logoloop--fade:before{left:0;background:linear-gradient(to right,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0,rgba(0,0,0,0) 100%)}.logoloop--fade:after{right:0;background:linear-gradient(to left,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0,rgba(0,0,0,0) 100%)}.logoloop--vertical.logoloop--fade:after,.logoloop--vertical.logoloop--fade:before{left:0;right:0;width:100%;height:clamp(24px,8%,120px)}.logoloop--vertical.logoloop--fade:before{top:0;bottom:auto;background:linear-gradient(to bottom,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0,rgba(0,0,0,0) 100%)}.logoloop--vertical.logoloop--fade:after{bottom:0;top:auto;background:linear-gradient(to top,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0,rgba(0,0,0,0) 100%)}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translateZ(0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}