.text-rotate{white-space:pre-wrap;flex-wrap:wrap;display:flex;position:relative}.text-rotate-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-rotate-word{display:inline-flex}.text-rotate-lines{flex-direction:column;width:100%;display:flex}.text-rotate-element{display:inline-block}.text-rotate-space{white-space:pre}.warp-text{isolation:isolate;border-radius:inherit;width:100%;min-height:220px;display:block;position:relative;overflow:hidden}.warp-text canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.flex-carousel{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:contain;outline:none;width:100%;height:100%;position:relative;overflow:hidden}.flex-carousel[data-hover=open]{cursor:zoom-in}.flex-carousel[data-hover=close]{cursor:zoom-out}.flex-carousel[data-dragging]{cursor:grabbing}.flex-carousel:focus-visible{box-shadow:inset 0 0 0 2px #80808c8c}.flex-carousel__caption{left:0;right:0;top:calc(50% + var(--flex-carousel-half) * var(--flex-carousel-lift,1) + 22px);pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:6px;padding:0 16px;animation:.9s both flex-carousel-reveal;display:flex;position:absolute}.flex-carousel__title{flex-direction:column;align-items:center;max-width:100%;font-size:15px;font-weight:500;line-height:1.35;animation:.52s cubic-bezier(.22,1,.36,1) flex-carousel-title;display:flex}.flex-carousel__subtitle{opacity:.6;font-weight:400}.flex-carousel__count{font-variant-numeric:tabular-nums;opacity:.5;align-items:center;gap:3px;font-size:12px;line-height:1;transition:opacity .4s;display:inline-flex}.flex-carousel__count[data-hidden]{opacity:0}.flex-carousel__digits{display:inline-flex}.flex-carousel__digit{height:1em;display:inline-block;overflow:hidden}.flex-carousel__reel{flex-direction:column;transition:transform .6s cubic-bezier(.22,1,.36,1);display:flex}.flex-carousel__reel span{height:1em}.flex-carousel__slash{opacity:.6}.flex-carousel__live{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes flex-carousel-title{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes flex-carousel-reveal{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.flex-carousel__caption,.flex-carousel__title{animation:none}.flex-carousel__reel{transition:none}}.card-grid,.bento-section{--hue:27;--sat:69%;--white:#fff;--purple-primary:#8400ff;--purple-glow:#8400ff33;--purple-border:#8400ffcc;--border-color:#2f293a;--background-dark:#120f17}.card-grid{gap:.5em;max-width:54em;padding:.75em;font-size:clamp(1rem,.9rem + .5vw,1.5rem);display:grid}.magic-bento-card{aspect-ratio:4/3;border:1px solid var(--border-color);background:var(--background-dark);--glow-x:50%;--glow-y:50%;--glow-intensity:0;--glow-radius:200px;border-radius:20px;flex-direction:column;justify-content:space-between;width:100%;max-width:100%;min-height:200px;padding:1.25em;font-weight:300;transition:all .3s;display:flex;position:relative;overflow:hidden}.magic-bento-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.magic-bento-card__header,.magic-bento-card__content{color:var(--white);display:flex;position:relative}.magic-bento-card__header{justify-content:space-between;gap:.75em}.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{margin:0 0 .25em;font-size:16px;font-weight:400}.magic-bento-card__description{opacity:.9;font-size:12px;line-height:1.2}.magic-bento-card--text-autohide .magic-bento-card__title,.magic-bento-card--text-autohide .magic-bento-card__description{text-overflow:ellipsis;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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 (width<=599px){.card-grid{grid-template-columns:1fr;width:90%;margin:0 auto;padding:.5em}.magic-bento-card{width:100%;min-height:180px}}@media (width>=600px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.card-grid{grid-template-columns:repeat(4,1fr)}.magic-bento-card:nth-child(3){grid-area:span 2/span 2}.magic-bento-card:nth-child(4){grid-area:2/1/span 2/span 2}.magic-bento-card:nth-child(6){grid-area:3/4}}.magic-bento-card--border-glow:after{content:"";background:radial-gradient(var(--glow-radius) circle at var(--glow-x) var(--glow-y), rgba(132, 0, 255, calc(var(--glow-intensity) * .8)) 0%, rgba(132, 0, 255, calc(var(--glow-intensity) * .4)) 30%, transparent 60%);border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;opacity:1;z-index:1;padding:6px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.magic-bento-card--border-glow:hover:after{opacity:1}.magic-bento-card--border-glow:hover{box-shadow:0 4px 20px #2e184e66, 0 0 30px var(--purple-glow)}.particle-container{position:relative;overflow:hidden}.particle:before{content:"";z-index:-1;background:#8400ff33;border-radius:50%;position:absolute;inset:-2px}.particle-container:hover{box-shadow:0 4px 20px #2e184e33, 0 0 30px var(--purple-glow)}.global-spotlight{mix-blend-mode:screen;will-change:transform, opacity;pointer-events:none;z-index:200!important}.bento-section{user-select:none;position:relative}.shape-waves{pointer-events:none;isolation:isolate;width:100%;height:100%;position:relative;overflow:hidden}.shape-waves__canvas{opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .6s cubic-bezier(.22,1,.36,1);display:block;position:absolute;inset:0}.shape-waves[data-ready=true] .shape-waves__canvas{opacity:1}@media (prefers-reduced-motion:reduce){.shape-waves__canvas{transition:none}}
