.Projects-module__G0btxG__container{color:#fffce8;flex-direction:column;align-items:center;min-height:100vh;padding:2rem;font-family:Georgia,serif;display:flex;overflow-x:hidden}.Projects-module__G0btxG__mandalaDock{z-index:20;pointer-events:none;--p-tip:#fff2fafa;--p-mid:#fcbedce0;--p-deep:#dc508cf2;--p-base:#941c4c;--p-glow-rgb:220,80,140;--p-text:#3a0020;position:fixed;top:50%;left:-100px;transform:translateY(-50%)}.Projects-module__G0btxG__flowerHead{width:200px;height:200px;animation:7s ease-in-out infinite Projects-module__G0btxG__gentleSway;position:relative}.Projects-module__G0btxG__flowerHead:after{content:"";background-color:rgba(var(--p-glow-rgb),.55);filter:blur(28px);opacity:.45;pointer-events:none;z-index:0;border-radius:50%;width:80px;height:80px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.Projects-module__G0btxG__mandalaRingOuter,.Projects-module__G0btxG__mandalaRingInner{pointer-events:none;z-index:1;border-radius:50%;position:absolute;top:50%;left:50%}.Projects-module__G0btxG__mandalaRingOuter{border:1px solid rgba(var(--p-glow-rgb),.45);width:196px;height:196px;margin-top:-98px;margin-left:-98px;animation:90s linear infinite Projects-module__G0btxG__mandalaRingCW,1.2s .4s backwards Projects-module__G0btxG__fadeInMandala}.Projects-module__G0btxG__mandalaRingInner{border:1px dashed #ffe88d61;width:150px;height:150px;margin-top:-75px;margin-left:-75px;animation:70s linear infinite Projects-module__G0btxG__mandalaRingCCW,1.2s .6s backwards Projects-module__G0btxG__fadeInMandala}@keyframes Projects-module__G0btxG__fadeInMandala{0%{opacity:0;transform:scale(.7)}}@keyframes Projects-module__G0btxG__mandalaRingCW{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes Projects-module__G0btxG__mandalaRingCCW{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.Projects-module__G0btxG__mandalaDot{background-color:rgba(var(--p-glow-rgb),.55);width:4px;height:4px;box-shadow:0 0 4px rgba(var(--p-glow-rgb),.6);pointer-events:none;z-index:1;transform:rotate(var(--dot-angle))translateY(-100px);animation:.6s backwards Projects-module__G0btxG__bloomDot;animation-delay:calc(.5s + var(--dot-i,0)*30ms);border-radius:50%;margin-top:-2px;margin-left:-2px;position:absolute;top:50%;left:50%}.Projects-module__G0btxG__mandalaDot:nth-child(odd){background-color:#ffe88dbf;box-shadow:0 0 4px #ffdc6e99}@keyframes Projects-module__G0btxG__bloomDot{0%{opacity:0;transform:rotate(var(--dot-angle))translateY(-100px)scale(0)}}.Projects-module__G0btxG__mandalaSpoke{transform-origin:bottom;width:1px;height:90px;transform:rotate(var(--spoke-angle));background:linear-gradient(to top,rgba(var(--p-glow-rgb),.5),transparent);pointer-events:none;z-index:1;margin-top:-90px;margin-left:0;animation:1s .5s backwards Projects-module__G0btxG__bloomSpoke;position:absolute;top:50%;left:50%}@keyframes Projects-module__G0btxG__bloomSpoke{0%{opacity:0;transform:rotate(var(--spoke-angle))scaleY(0)}}.Projects-module__G0btxG__decorPetal{transform-origin:bottom;width:34px;height:54px;transform:rotate(var(--petal-angle));clip-path:path("M 17 54 C 4 48 0 37 1 26 C 2 15 7 5 17 0 C 27 5 32 15 33 26 C 34 37 30 48 17 54 Z");background-color:#f9c4dd52;background-image:radial-gradient(ellipse 60% 55% at 40% 30%,var(--p-tip)0%,var(--p-mid)45%,var(--p-deep)100%);opacity:.82;pointer-events:none;z-index:1;animation:1.2s backwards Projects-module__G0btxG__bloomDecorPetal;animation-delay:calc(.8s + var(--petal-i,0)*.15s);margin-top:-54px;margin-left:-17px;position:absolute;top:50%;left:50%;box-shadow:inset 0 0 6px #ffffff4d}@keyframes Projects-module__G0btxG__bloomDecorPetal{0%{transform:rotate(var(--petal-angle))scale(0);opacity:0}}.Projects-module__G0btxG__flowerLight{filter:blur(1px);pointer-events:none;z-index:3;background-color:#fffb00;border-radius:50%;width:5px;height:5px;animation:4s linear infinite backwards Projects-module__G0btxG__flowerLightAns;position:absolute;top:50%;left:50%}.Projects-module__G0btxG__flowerLight2,.Projects-module__G0btxG__flowerLight4,.Projects-module__G0btxG__flowerLight6,.Projects-module__G0btxG__flowerLight8{background-color:#ff9ece}.Projects-module__G0btxG__flowerLight1{margin-left:-10px;animation-delay:1s}.Projects-module__G0btxG__flowerLight2{margin-left:14px;animation-delay:.5s}.Projects-module__G0btxG__flowerLight3{margin-left:-28px;animation-delay:.3s}.Projects-module__G0btxG__flowerLight4{margin-left:28px;animation-delay:.9s}.Projects-module__G0btxG__flowerLight5{margin-left:-4px;animation-delay:1.5s}.Projects-module__G0btxG__flowerLight6{margin-left:-18px;animation-delay:3s}.Projects-module__G0btxG__flowerLight7{margin-left:12px;animation-delay:2s}.Projects-module__G0btxG__flowerLight8{margin-left:-28px;animation-delay:3.5s}@keyframes Projects-module__G0btxG__flowerLightAns{0%{opacity:0;transform:translateY(0)}25%{opacity:1;transform:translateY(-22px)translate(-8px)}50%{opacity:1;filter:blur(1px);transform:translateY(-46px)translate(8px)}75%{filter:blur(1.5px);transform:translateY(-66px)translate(-6px)}to{opacity:0;filter:blur(3px);transform:translateY(-90px)}}.Projects-module__G0btxG__flowerCenter{z-index:10;pointer-events:none;background:radial-gradient(circle at 38% 35%,#fffde0 0%,#ffe566 28%,#f0a800 58%,#b06800 80%,#7a4200 100%);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 -5px 10px #501e0080,inset 0 4px 8px #ffffc88c,0 0 18px #ffc83299,0 3px 10px #0000004d}.Projects-module__G0btxG__flowerCenter:after{content:"";pointer-events:none;background:radial-gradient(#fffff0d9 0%,#0000 100%);border-radius:50%;width:28%;height:22%;position:absolute;top:18%;left:22%;transform:rotate(-20deg)}.Projects-module__G0btxG__flowerCenterReset{color:#fff;cursor:pointer;pointer-events:auto;border:none;font-size:.82rem;transition:transform .2s,box-shadow .2s;box-shadow:0 0 14px #ff3c3c99;background:linear-gradient(135deg,#ff6b6b,#c0392b)!important}.Projects-module__G0btxG__flowerCenterReset:after{display:none}.Projects-module__G0btxG__flowerCenterReset:hover{transform:translate(-50%,-50%)scale(1.15);box-shadow:0 0 22px #ff3c3cd9}.Projects-module__G0btxG__flowerPetal{transform-origin:bottom;width:58px;height:90px;transform:rotate(var(--petal-angle))perspective(200px)rotateX(-22deg);clip-path:path("M 29 90 C 6 78 0 62 2 43 C 4 26 13 8 29 0 C 45 8 54 26 56 43 C 58 62 52 78 29 90 Z");background:radial-gradient(ellipse 58% 52% at 38% 28%,var(--p-tip)0%,var(--p-mid)28%,var(--p-deep)62%,var(--p-base)100%);box-shadow:inset 3px 7px 18px #ffebf8b3,inset -2px -12px 20px #00000047,3px 5px 14px rgba(var(--p-glow-rgb),.38),0 0 10px rgba(var(--p-glow-rgb),.22);opacity:.95;cursor:pointer;pointer-events:auto;z-index:2;animation:Projects-module__G0btxG__bloomPetal 1.4s calc(1.1s + var(--petal-i,0)*.2s)backwards;border:none;justify-content:center;align-items:flex-start;margin-top:-90px;margin-left:-29px;padding-top:.65rem;transition:background-image .24s,box-shadow .24s,transform .3s cubic-bezier(.2,.8,.2,1),opacity .24s;display:flex;position:absolute;top:50%;left:50%}.Projects-module__G0btxG__flowerPetal:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(#ffffff8c,#0000);border-radius:1px;width:2px;height:55%;position:absolute;top:8%;left:50%;transform:translate(-50%)}.Projects-module__G0btxG__flowerPetal:after{content:"";width:48%;height:140%;animation:7s ease-in-out infinite Projects-module__G0btxG__petalShimmer;animation-delay:calc(var(--petal-i,0)*1.4s + 1.8s);pointer-events:none;z-index:3;background:linear-gradient(90deg,#0000 0%,#fff3 50%,#0000 100%);position:absolute;top:-20%;left:-80%;transform:skew(-15deg)}@keyframes Projects-module__G0btxG__petalShimmer{0%,55%,to{left:-80%}40%{left:150%}}@keyframes Projects-module__G0btxG__bloomPetal{0%{transform:rotate(var(--petal-angle))perspective(200px)rotateX(-22deg)scale(0);opacity:0}}.Projects-module__G0btxG__flowerPetal:hover{background:radial-gradient(ellipse 55% 50% at 36% 26%,var(--p-tip)0%,var(--p-mid)20%,var(--p-deep)58%,var(--p-base)100%);box-shadow:inset 4px 9px 22px #ffebf8d1,inset -2px -14px 24px #00000059,4px 7px 20px rgba(var(--p-glow-rgb),.52),0 0 28px rgba(var(--p-glow-rgb),.58);opacity:1;transform:rotate(var(--petal-angle))perspective(200px)rotateX(-30deg)scaleY(1.1)translateY(-4px);z-index:4}.Projects-module__G0btxG__flowerPetalActive{background:radial-gradient(ellipse 56% 50% at 36% 26%,var(--p-mid)0%,var(--p-deep)48%,var(--p-base)100%);box-shadow:inset 3px 7px 18px #ffe1f2a6,inset -2px -12px 20px #00000061,0 0 22px rgba(var(--p-glow-rgb),.7);opacity:1}.Projects-module__G0btxG__flowerPetalActive:hover{transform:rotate(var(--petal-angle))perspective(200px)rotateX(-30deg)scaleY(1.1)translateY(-4px)}.Projects-module__G0btxG__petalInner{transform:rotate(calc(0deg - var(--petal-angle)));flex-direction:column;align-items:center;gap:.22rem;display:flex}.Projects-module__G0btxG__petalIcon{color:var(--p-text,#3a0020);justify-content:center;align-items:center;font-size:1rem;display:flex}.Projects-module__G0btxG__petalLabel{letter-spacing:.06em;white-space:nowrap;color:var(--p-text,#3a0020);font-family:Cinzel,serif;font-size:.5rem;font-weight:700;line-height:1}.Projects-module__G0btxG__flowerCenter:not(.Projects-module__G0btxG__flowerCenterReset){animation:2.8s ease-in-out infinite Projects-module__G0btxG__centerBreath}@keyframes Projects-module__G0btxG__centerBreath{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.12)}}@keyframes Projects-module__G0btxG__gentleSway{0%,to{rotate:none}30%{rotate:2.5deg}70%{rotate:-1.5deg}}.Projects-module__G0btxG__flowerCredit{color:#f95b8e4d;white-space:nowrap;pointer-events:auto;z-index:5;font-size:.5rem;text-decoration:none;transition:color .2s;position:absolute;bottom:2px;right:4px}.Projects-module__G0btxG__flowerCredit:hover{color:#f95b8ebf}.Projects-module__G0btxG__atlasEyebrow{color:#ffe88d;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-family:Cinzel,serif;font-size:.75rem}.Projects-module__G0btxG__resultsWrapper{width:100%;scroll-margin-top:1rem}.Projects-module__G0btxG__emptyState{text-align:center;background:#1d1b2feb;border:1px solid #ffe88d47;border-radius:8px;width:min(680px,100%);margin:2rem auto 4rem;padding:2rem}.Projects-module__G0btxG__emptyState h2{color:#ffe88d;margin:0 0 .5rem;font-family:Cinzel Decorative,cursive}.Projects-module__G0btxG__emptyState p{color:#fffce8c7}.Projects-module__G0btxG__emptyState button{color:#fffce8;cursor:pointer;background:#fffce814;border:1px solid #fffce829;border-radius:999px;padding:.45rem .72rem;font-family:Cinzel,serif;font-size:.78rem;transition:background .2s,border-color .2s,transform .2s}.Projects-module__G0btxG__emptyState button:hover{background:#ffe88d2e;border-color:#ffe88da6;transform:translateY(-1px)}@media (max-width:768px){.Projects-module__G0btxG__container{padding:1rem}.Projects-module__G0btxG__flowerHead{transform-origin:50%;animation:none;transform:scale(.62)}}.Projects-module__G0btxG__toggleWrapper{text-align:center;margin-bottom:3rem}.Projects-module__G0btxG__toggleSwitch{width:90px;height:44px;display:inline-block;position:relative}.Projects-module__G0btxG__toggleSwitch input{opacity:0;width:0;height:0}.Projects-module__G0btxG__slider{cursor:pointer;background:linear-gradient(135deg,#ffe88d,#f7c948);border-radius:34px;justify-content:space-between;align-items:center;padding:0 12px;transition:background .4s;display:flex;position:absolute;inset:0;box-shadow:0 4px 12px #0000004d}.Projects-module__G0btxG__slider svg{transition:transform .4s;animation:.8s forwards Projects-module__G0btxG__sparkle}.Projects-module__G0btxG__slider:before{content:"";z-index:1;background:#fff9d6;border-radius:50%;width:30px;height:30px;transition:transform .4s;position:absolute;bottom:7px;left:6px;box-shadow:0 2px 6px #0003}.Projects-module__G0btxG__toggleSwitch input:checked+.Projects-module__G0btxG__slider{background:linear-gradient(135deg,#a78bfa,#f9a8d4)}.Projects-module__G0btxG__toggleSwitch input:checked+.Projects-module__G0btxG__slider:before{transform:translate(46px)}@keyframes Projects-module__G0btxG__sparkle{0%{opacity:0;transform:scale(.8)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(20deg)}to{opacity:1;transform:scale(1)rotate(0)}}.Projects-module__G0btxG__section{flex-direction:column;align-items:center;width:100%;max-width:1000px;margin:3rem 0;display:flex}.Projects-module__G0btxG__title{color:#ffe88d;text-shadow:1px 1px 2px #00000080;margin-bottom:1rem;font-family:Cinzel Decorative,cursive;font-size:2rem}.Projects-module__G0btxG__bookWrapper{justify-content:center;max-width:500px;display:flex}.Projects-module__G0btxG__book{aspect-ratio:2;aspect-ratio:auto;border-radius:8px;width:100%;max-width:500px;height:auto;margin:0 auto;position:relative;overflow:hidden}.Projects-module__G0btxG__book .Projects-module__G0btxG__react-pageflip__book{width:100%!important;height:100%!important}.Projects-module__G0btxG__book .Projects-module__G0btxG__react-pageflip__page{box-sizing:border-box;background:#faf5e8;justify-content:center;align-items:center;width:50%!important;height:100%!important;display:flex!important}.Projects-module__G0btxG__pageContent{text-align:center;background-color:#faf5e8;flex-direction:column;justify-content:center;align-items:center;width:90%;height:90%;display:flex;position:relative}.Projects-module__G0btxG__schoolLogo{opacity:.95;pointer-events:none;filter:drop-shadow(0 2px 4px #00000040);width:56px;height:auto;position:absolute;top:8px;right:8px}.Projects-module__G0btxG__pageLeft{background-color:#faf5e8;border-right:2px dotted #e1c07d;justify-content:center;align-items:center;display:flex}.Projects-module__G0btxG__pageLeft .Projects-module__G0btxG__image{object-fit:contain;width:500px;height:100%;margin:auto;padding:1rem}.Projects-module__G0btxG__pageRight{background-color:#faf5e8;border-left:2px dotted #e1c07d;justify-content:center;align-items:center;padding:1rem;display:flex;flex-direction:column!important}.Projects-module__G0btxG__pageRight h3{color:#5b3924;margin:0 0 .5rem;font-family:Cinzel,serif;font-size:1.6rem}.Projects-module__G0btxG__pageRight p{color:#4a4435;margin:0 0 1rem;font-size:1rem;line-height:1.6}.Projects-module__G0btxG__pageRight a{color:#5b3924;border-bottom:1px dashed #5b3924;font-family:Cinzel,serif;text-decoration:none;transition:color .3s,border-bottom .3s}.Projects-module__G0btxG__pageRight a:hover{color:#3a3027;border-bottom:1px solid #3a3027}@media (max-width:768px){.Projects-module__G0btxG__book{aspect-ratio:auto;height:auto}.Projects-module__G0btxG__book .Projects-module__G0btxG__react-pageflip__book{flex-direction:column!important}.Projects-module__G0btxG__book .Projects-module__G0btxG__react-pageflip__page{padding:1rem 0;width:100%!important;height:auto!important}.Projects-module__G0btxG__pageLeft{border-bottom:2px dotted #e1c07d;border-right:none}.Projects-module__G0btxG__pageRight{border-left:none}}.Projects-module__G0btxG__tagsContainer{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1rem 0;display:flex}.Projects-module__G0btxG__tag{color:#3a3027;background:linear-gradient(135deg,#d1c4e9 0%,#ffd6e8 100%);border-radius:8px;align-items:center;padding:.25rem .75rem;font-family:Cinzel,serif;font-size:.85rem;transition:transform .2s;display:inline-flex;position:relative;box-shadow:0 2px 6px #0000001a}.Projects-module__G0btxG__tag:hover{transform:translateY(-2px)scale(1.05)}.Projects-module__G0btxG__gridSection{flex-direction:column;align-items:center;width:100%;margin-bottom:4rem;display:flex}.Projects-module__G0btxG__gridWrapper{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));place-items:stretch center;gap:2rem;width:100vw;padding:2rem;display:grid}.Projects-module__G0btxG__gridItem{color:#eaeaea;background:#1d1b2f;border-radius:40px;flex-direction:column;justify-content:center;align-items:center;max-width:320px;transition:transform .3s,box-shadow .3s;display:flex;overflow:hidden;box-shadow:0 2px 14px #0006}.Projects-module__G0btxG__gridItem:hover{transform:translateY(-6px);box-shadow:0 6px 24px #0009}.Projects-module__G0btxG__featuredGridItem{aspect-ratio:3/4.2;background:0 0;justify-content:center;align-items:center;width:100%;max-width:360px;transition:transform .3s;display:flex;position:relative;overflow:visible}.Projects-module__G0btxG__marqueeFrame{object-fit:contain;z-index:3;pointer-events:none;width:100%;height:auto;position:absolute;top:0;left:0}.Projects-module__G0btxG__cardInsideFrame{z-index:2;background-color:#1d1b2f;border-radius:18px;flex-direction:column;justify-content:flex-start;width:82%;margin-top:45%;margin-bottom:8%;padding:0;transition:all .3s;display:flex;position:relative;overflow:hidden}.Projects-module__G0btxG__cardInsideFrame img{object-fit:cover;border-bottom:1px solid #ffffff1a;width:100%;height:300px}.Projects-module__G0btxG__cardOverlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:2;text-align:center;background:#000000b3;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;height:100%;padding:1rem;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:0;left:0;transform:scale(.98)}.Projects-module__G0btxG__cardOverlayVisible{opacity:1;pointer-events:auto;transform:scale(1)}.Projects-module__G0btxG__cardOverlay h3{color:#fffde7;margin:0;font-size:1.1rem}.Projects-module__G0btxG__cardOverlay .Projects-module__G0btxG__iconRow{color:#fff;gap:.75rem;font-size:1.25rem;display:flex}.Projects-module__G0btxG__cardOverlay .Projects-module__G0btxG__iconRow a,.Projects-module__G0btxG__cardOverlay .Projects-module__G0btxG__iconRow button{color:#fff;cursor:pointer;background:0 0;border:none;transition:transform .2s}.Projects-module__G0btxG__cardOverlay .Projects-module__G0btxG__iconRow a:hover,.Projects-module__G0btxG__cardOverlay .Projects-module__G0btxG__iconRow button:hover{transform:scale(1.2)}.Projects-module__G0btxG__gridItemInner{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.Projects-module__G0btxG__gridImage{object-fit:cover;object-position:center;border-bottom:1px solid #ffffff1a;width:100%;height:300px}.Projects-module__G0btxG__gridItem h3,.Projects-module__G0btxG__featuredGridItem h3{color:#f5f5f5;margin:1rem 1rem .5rem;font-size:1.1rem;font-weight:600}.Projects-module__G0btxG__gridItem p,.Projects-module__G0btxG__featuredGridItem p{color:#cfcfcf;flex-grow:1;margin:0 1rem 1rem;font-size:.9rem;line-height:1.4}.Projects-module__G0btxG__gridTagsContainer{flex-wrap:wrap;gap:.4rem;padding:0 1rem 1rem;display:flex}.Projects-module__G0btxG__gridTag{color:#2a003f;text-transform:uppercase;letter-spacing:.03em;background-color:#e0b2f1;border-radius:8px;padding:.25rem .6rem;font-family:Cinzel,serif;font-size:.65rem;font-weight:500}.Projects-module__G0btxG__gridTag[data-tag=next\.js]{color:#fff;background-color:#444}.Projects-module__G0btxG__gridTag[data-tag=react]{color:#001f2d;background-color:#61dafb}.Projects-module__G0btxG__gridTag[data-tag=typescript]{color:#fff;background-color:#4373bb}.Projects-module__G0btxG__gridTag[data-tag=firebase]{color:#000;background-color:#eaa03a}.Projects-module__G0btxG__gridTag[data-tag=mapbox\ gl]{color:#fff;background-color:#455de4}.Projects-module__G0btxG__gridTag[data-tag=javascript]{color:#000;background-color:#f7df1e}.Projects-module__G0btxG__gridTag[data-tag=java]{color:#fff;background-color:#b07219}.Projects-module__G0btxG__gridTag[data-tag=openai]{color:#fff;background-color:#4ba283}.Projects-module__G0btxG__gridTag[data-tag=redux]{color:#fff;background-color:#764abc}.Projects-module__G0btxG__gridTag[data-tag=html]{color:#fff;background-color:#e34c26}.Projects-module__G0btxG__gridTag[data-tag=css]{color:#fff;background-color:#2965f1}.Projects-module__G0btxG__gridTag[data-tag=figma]{color:#fff;background-color:#935aee}.Projects-module__G0btxG__gridTag[data-tag=machine\ learning]{color:#f5f3ff;background-color:#2b4662}.Projects-module__G0btxG__gridTag[data-tag=python]{color:#fff;background-color:#3776ab}.Projects-module__G0btxG__gridTag[data-tag=data\ science]{color:#fff;background-color:#2099c9}.Projects-module__G0btxG__gridTag[data-tag=ai\ project]{color:#fff;background-color:#62b800}.Projects-module__G0btxG__gridTag[data-tag=web\ development]{color:#fff;background-color:#a9609e}.Projects-module__G0btxG__gridTag[data-tag=game\ development]{color:#fff5f5;background-color:#5b65ec}.Projects-module__G0btxG__gridTag[data-tag=creative\ writing]{color:#2e0016;background-color:#e9f78d}.Projects-module__G0btxG__gridTag[data-tag=three\.js]{color:#fff;background-color:#5d5d5d}.Projects-module__G0btxG__gridTag[data-tag=socket\.io]{color:#fff;background-color:#010101}.Projects-module__G0btxG__gridTag[data-tag=maya]{color:#fff;background-color:#59a4c8}.Projects-module__G0btxG__gridTag[data-tag=arnold]{color:#fff;background-color:#43677d}.Projects-module__G0btxG__gridTag[data-tag=animation]{color:#fff;background-color:#355884}.Projects-module__G0btxG__gridTag[data-tag=screenwriting]{color:#1e272e;background-color:#fbc531}.Projects-module__G0btxG__gridTag[data-tag=webgl]{color:#fff;background-color:#872625}.Projects-module__G0btxG__gridTag[data-tag=twine]{color:#fff;background-color:#85cbae}.Projects-module__G0btxG__gridTag[data-tag=glsl]{color:#fff;background-color:#1da1f2}.Projects-module__G0btxG__gridTag[data-tag="c++"]{color:#fff;background-color:#00599c}.Projects-module__G0btxG__gridTag[data-tag=unity]{color:#fff;background-color:#000}.Projects-module__G0btxG__gridTag[data-tag=shadertoy]{color:#fff;background-color:#141414}.Projects-module__G0btxG__gridTag[data-tag=computer\ graphics]{color:#fff;background-color:#6441a5}.Projects-module__G0btxG__gridTag[data-tag=houdini]{color:#fff;background-color:#d1530b}.Projects-module__G0btxG__iconRow{justify-content:center;align-items:center;gap:1rem;margin:0 1rem 1rem;font-size:1.3rem;display:flex}.Projects-module__G0btxG__iconRow a,.Projects-module__G0btxG__iconRow button{color:#ffe88d;cursor:pointer;background:#2c2a40;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;text-decoration:none;transition:transform .2s,background .2s;display:flex}.Projects-module__G0btxG__iconRow a:hover,.Projects-module__G0btxG__iconRow button:hover{color:#fffce8;background:#3a3750;transform:scale(1.1)}.Projects-module__G0btxG__iconRow svg{width:18px;height:18px}.Projects-module__G0btxG__iconButton{background:0 0;border:none;padding:0}
.Modal-module__knUcxa__overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;pointer-events:auto;background:#0a0a1eb3;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.3s ease-out Modal-module__knUcxa__fadeIn;display:flex;position:fixed;top:0;left:0}.Modal-module__knUcxa__modal{color:#2a1a4c;pointer-events:auto;background:#fffaf0;border:2px solid #7b5ca5;border-radius:16px;width:90%;max-width:700px;max-height:80vh;padding:2rem;font-family:Playfair Display,serif;animation:.25s Modal-module__knUcxa__scaleIn;position:relative;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.Modal-module__knUcxa__modal h2{color:#4b2e83;margin-bottom:1rem;font-family:Cinzel Decorative,cursive;font-size:2rem}.Modal-module__knUcxa__modalContent{pointer-events:auto;font-family:Georgia,serif;font-size:1rem;line-height:1.7}.Modal-module__knUcxa__modalContent a{color:#6a4ea8;text-decoration:underline}.Modal-module__knUcxa__modalContent a:hover{color:#4b2e83}.Modal-module__knUcxa__modalContent ul{padding-left:1.5rem;list-style-type:disc}.Modal-module__knUcxa__modalContent blockquote{color:#555;border-left:3px solid #a982d2;margin:1rem 0;padding-left:1rem;font-style:italic}.Modal-module__knUcxa__closeButton{color:#6a4ea8;cursor:pointer;z-index:10001;background:0 0;border:none;font-size:1.5rem;transition:transform .2s;position:absolute;top:12px;right:16px}.Modal-module__knUcxa__closeButton:hover{transform:scale(1.2)}@keyframes Modal-module__knUcxa__fadeIn{0%{opacity:0}to{opacity:1}}@keyframes Modal-module__knUcxa__scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.FrogCritter-module__B5T6fa__frogRig{--frog-scale:1;--frog-hue:134deg;--travel-tilt:-7deg;z-index:1000;pointer-events:none;width:74px;height:74px;transform:translateZ(0)scale(var(--frog-scale));transform-origin:bottom;transition:transform .18s;animation:2.8s ease-in-out infinite FrogCritter-module__B5T6fa__frogFloat;position:fixed}.FrogCritter-module__B5T6fa__facingLeft{--travel-tilt:7deg}.FrogCritter-module__B5T6fa__facingRight{--travel-tilt:-7deg}.FrogCritter-module__B5T6fa__frog{z-index:3;pointer-events:auto;filter:drop-shadow(0 9px 7px #18482647);border-radius:14px;width:50px;height:50px;transition:filter .18s;position:absolute;top:13px;left:12px}.FrogCritter-module__B5T6fa__leaping .FrogCritter-module__B5T6fa__frog{animation:.42s ease-in-out infinite FrogCritter-module__B5T6fa__frogTuck}.FrogCritter-module__B5T6fa__frogRig:hover .FrogCritter-module__B5T6fa__frog,.FrogCritter-module__B5T6fa__hello .FrogCritter-module__B5T6fa__frog,.FrogCritter-module__B5T6fa__curious .FrogCritter-module__B5T6fa__frog,.FrogCritter-module__B5T6fa__excited .FrogCritter-module__B5T6fa__frog,.FrogCritter-module__B5T6fa__encore .FrogCritter-module__B5T6fa__frog,.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__frog{filter:brightness(1.18)drop-shadow(0 0 7px #a9ff9fb8)drop-shadow(0 10px 8px #18482642)}.FrogCritter-module__B5T6fa__padWake{z-index:0;pointer-events:none;opacity:0;width:60px;height:20px;transform:rotate(var(--travel-tilt));position:absolute;bottom:1px;left:7px}.FrogCritter-module__B5T6fa__padWake:before,.FrogCritter-module__B5T6fa__padWake:after{content:"";filter:blur(.1px);border:1px solid #69bcc485;border-top-color:#0000;border-radius:50%;position:absolute;inset:2px 6px;transform:scaleX(.68)}.FrogCritter-module__B5T6fa__padWake:after{opacity:.58;inset:5px 0;transform:scaleX(1)}.FrogCritter-module__B5T6fa__lilyShadow{width:58px;height:23px;transform:translateY(0)rotate(var(--travel-tilt));transform-origin:50% 48%;z-index:1;background:radial-gradient(circle at 32% 44%,#f6ffbfb3 0 7%,#0000 8%),radial-gradient(circle at 68% 62%,#abee6f73 0 12%,#0000 13%),linear-gradient(135deg,#69cc54f5,#1f854efa);border-radius:50%;transition:transform .16s,box-shadow .16s;position:absolute;bottom:4px;left:8px;box-shadow:inset 0 -3px #165b3647,inset 0 2px #ffffd252,0 8px 15px #18583733}.FrogCritter-module__B5T6fa__lilyShadow:after{content:"";clip-path:polygon(100% 50%,0 0,0 100%);background:#fffff2f5;width:17px;height:10px;position:absolute;top:8px;right:-2px}.FrogCritter-module__B5T6fa__lilyShadow:before{content:"";opacity:.74;border-top:1px solid #edffb480;border-radius:50%;position:absolute;inset:3px 7px 5px}.FrogCritter-module__B5T6fa__lilyVein{background:#edffb473;border-radius:999px;width:28px;height:1px;position:absolute;top:11px;left:19px;transform:rotate(12deg)}.FrogCritter-module__B5T6fa__lilyBloom{filter:drop-shadow(0 2px 2px #57235429);background:radial-gradient(circle at 50% 54%,#ffe97c 0 16%,#0000 17%),radial-gradient(at 50% 14%,#fff7ff 0 28%,#0000 29%),radial-gradient(at 18%,#ffb5df 0 31%,#0000 32%),radial-gradient(at 82%,#ffb5df 0 31%,#0000 32%),radial-gradient(at 50% 86%,#ff8cc8 0 30%,#0000 31%);border-radius:50% 50% 45% 45%;width:13px;height:13px;position:absolute;top:-5px;left:7px}.FrogCritter-module__B5T6fa__leaping .FrogCritter-module__B5T6fa__lilyShadow,.FrogCritter-module__B5T6fa__following .FrogCritter-module__B5T6fa__lilyShadow{animation:.42s ease-in-out infinite FrogCritter-module__B5T6fa__lilyCruise}.FrogCritter-module__B5T6fa__leaping .FrogCritter-module__B5T6fa__padWake,.FrogCritter-module__B5T6fa__following .FrogCritter-module__B5T6fa__padWake,.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__padWake{opacity:1;animation:.72s ease-out infinite FrogCritter-module__B5T6fa__wakePulse}.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__lilyShadow{animation:.56s ease-in-out infinite FrogCritter-module__B5T6fa__lilyDance}.FrogCritter-module__B5T6fa__crown{z-index:4;opacity:0;width:28px;height:19px;transition:opacity .18s,transform .18s;position:absolute;top:-2px;left:22px;transform:translateY(8px)rotate(-8deg)scale(.74)}.FrogCritter-module__B5T6fa__crown:before{content:"";background:linear-gradient(#ffe877 0%,#f4a62a 100%);border-radius:3px 3px 5px 5px;height:8px;position:absolute;bottom:0;left:2px;right:2px;box-shadow:inset 0 -2px #9e58063d}.FrogCritter-module__B5T6fa__crown span{transform-origin:bottom;background:linear-gradient(#fff1a8 0%,#f9b333 80%);border-radius:8px 8px 1px 1px;width:11px;height:14px;position:absolute;bottom:5px}.FrogCritter-module__B5T6fa__crown span:first-child{left:0;transform:rotate(-20deg)}.FrogCritter-module__B5T6fa__crown span:nth-child(2){bottom:7px;left:9px}.FrogCritter-module__B5T6fa__crown span:nth-child(3){right:0;transform:rotate(20deg)}.FrogCritter-module__B5T6fa__magicWand{opacity:0;z-index:2;background:linear-gradient(#fdf6ff,#915fcf);border-radius:999px;width:4px;height:31px;transition:opacity .18s,transform .18s;position:absolute;top:8px;right:4px;transform:rotate(34deg)translateY(7px);box-shadow:0 0 0 1px #41245f38}.FrogCritter-module__B5T6fa__magicWand:before,.FrogCritter-module__B5T6fa__magicWand:after{content:"";clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%);filter:drop-shadow(0 0 5px #ffe877cc);background:#ffe877;width:15px;height:15px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.FrogCritter-module__B5T6fa__magicWand:after{opacity:.82;background:#fff;width:7px;height:7px;top:-15px;transform:translate(9px)rotate(18deg)}.FrogCritter-module__B5T6fa__speechBubble{z-index:5;color:#285a36;text-align:center;text-transform:lowercase;background:#fffff2f5;border:1px solid #295b373d;border-radius:999px;min-width:max-content;max-width:118px;padding:4px 8px 5px;font-size:10px;font-weight:700;line-height:1;animation:.22s both FrogCritter-module__B5T6fa__bubblePop;position:absolute;top:-22px;left:50%;transform:translate(-50%);box-shadow:0 7px 15px #1f402729}.FrogCritter-module__B5T6fa__speechBubble:after{content:"";background:#fffff2f5;border-bottom:1px solid #295b372e;border-right:1px solid #295b372e;width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.FrogCritter-module__B5T6fa__musicNotes{z-index:6;pointer-events:none;width:54px;height:48px;position:absolute;inset:-20px -10px auto auto}.FrogCritter-module__B5T6fa__musicNotes span{color:#7045a8;border:2px solid #7045a8;border-left:0;border-radius:8px 8px 2px 2px;width:11px;height:19px;animation:1.05s ease-in-out infinite FrogCritter-module__B5T6fa__noteFloat;position:absolute}.FrogCritter-module__B5T6fa__musicNotes span:after{content:"";background:#7045a8;border-radius:50%;width:10px;height:8px;position:absolute;bottom:-4px;left:-7px}.FrogCritter-module__B5T6fa__musicNotes span:first-child{top:22px;right:35px}.FrogCritter-module__B5T6fa__musicNotes span:nth-child(2){animation-delay:.15s;top:4px;right:18px}.FrogCritter-module__B5T6fa__musicNotes span:nth-child(3){animation-delay:.3s;top:17px;right:0}.FrogCritter-module__B5T6fa__soundToggle{opacity:.84;z-index:4;background:#8fe26a;border-radius:50%;width:9px;height:9px;position:absolute;bottom:9px;right:7px;box-shadow:0 0 0 2px #fffff2e0,0 0 9px #8fe26ab3}.FrogCritter-module__B5T6fa__soundToggle[data-muted=true]{background:#f58d8d;box-shadow:0 0 0 2px #fffff2e0}.FrogCritter-module__B5T6fa__trailSpark{--spark-hue:134deg;--spark-delay:0s;z-index:999;pointer-events:none;background:radial-gradient(circle,#fff 0 18%,transparent 19%),hsl(var(--spark-hue),78%,62%);width:10px;height:10px;box-shadow:0 0 12px hsl(var(--spark-hue),82%,62%),0 0 0 1px #ffffff73;animation:FrogCritter-module__B5T6fa__sparkTwinkle .72s ease-in-out var(--spark-delay)infinite alternate;border-radius:50%;position:fixed}.FrogCritter-module__B5T6fa__hello .FrogCritter-module__B5T6fa__crown,.FrogCritter-module__B5T6fa__curious .FrogCritter-module__B5T6fa__crown,.FrogCritter-module__B5T6fa__excited .FrogCritter-module__B5T6fa__crown,.FrogCritter-module__B5T6fa__encore .FrogCritter-module__B5T6fa__crown,.FrogCritter-module__B5T6fa__following .FrogCritter-module__B5T6fa__crown,.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__crown{opacity:1;transform:translateY(0)rotate(-8deg)scale(1)}.FrogCritter-module__B5T6fa__excited .FrogCritter-module__B5T6fa__magicWand,.FrogCritter-module__B5T6fa__encore .FrogCritter-module__B5T6fa__magicWand,.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__magicWand{opacity:1;transform:rotate(34deg)translateY(0)}.FrogCritter-module__B5T6fa__following{animation-duration:1.4s}.FrogCritter-module__B5T6fa__excited,.FrogCritter-module__B5T6fa__encore{animation:.72s cubic-bezier(.34,1.56,.64,1) infinite FrogCritter-module__B5T6fa__frogBounce}.FrogCritter-module__B5T6fa__concert{animation:.56s ease-in-out infinite FrogCritter-module__B5T6fa__frogDance}.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__crown{animation:.56s ease-in-out infinite FrogCritter-module__B5T6fa__crownShimmy}@keyframes FrogCritter-module__B5T6fa__frogFloat{0%,to{translate:0}50%{translate:0 -3px}}@keyframes FrogCritter-module__B5T6fa__frogTuck{0%,to{translate:0}45%{translate:0 -3px}}@keyframes FrogCritter-module__B5T6fa__frogBounce{0%,to{translate:0}35%{translate:0 -8px}}@keyframes FrogCritter-module__B5T6fa__lilyCruise{0%,to{transform:translateY(0)rotate(var(--travel-tilt))scaleX(1)}45%{transform:translateY(-4px)rotate(var(--travel-tilt))scaleX(.93)}72%{transform:translateY(1px)rotate(var(--travel-tilt))scaleX(1.07)}}@keyframes FrogCritter-module__B5T6fa__lilyDance{0%,to{transform:translateY(0)rotate(calc(var(--travel-tilt) - 3deg))scaleX(1)}50%{transform:translateY(-3px)rotate(calc(var(--travel-tilt) + 6deg))scaleX(.96)}}@keyframes FrogCritter-module__B5T6fa__wakePulse{0%{opacity:.05;scale:.72}45%{opacity:.78}to{opacity:0;scale:1.32}}@keyframes FrogCritter-module__B5T6fa__frogDance{0%,to{translate:0;rotate:-3deg}50%{translate:0 -5px;rotate:5deg}}@keyframes FrogCritter-module__B5T6fa__crownShimmy{0%,to{rotate:-8deg}50%{rotate:8deg}}@keyframes FrogCritter-module__B5T6fa__bubblePop{0%{opacity:0;translate:0 4px;scale:.8}to{opacity:1;translate:0;scale:1}}@keyframes FrogCritter-module__B5T6fa__noteFloat{0%,to{opacity:.52;transform:translateY(7px)rotate(-8deg)}50%{opacity:1;transform:translateY(-8px)rotate(8deg)}}@keyframes FrogCritter-module__B5T6fa__sparkTwinkle{0%{scale:.72}to{scale:1.16}}@media (prefers-reduced-motion:reduce){.FrogCritter-module__B5T6fa__frogRig,.FrogCritter-module__B5T6fa__leaping .FrogCritter-module__B5T6fa__frog,.FrogCritter-module__B5T6fa__leaping .FrogCritter-module__B5T6fa__lilyShadow,.FrogCritter-module__B5T6fa__following .FrogCritter-module__B5T6fa__lilyShadow,.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__lilyShadow,.FrogCritter-module__B5T6fa__padWake,.FrogCritter-module__B5T6fa__excited,.FrogCritter-module__B5T6fa__encore,.FrogCritter-module__B5T6fa__concert,.FrogCritter-module__B5T6fa__concert .FrogCritter-module__B5T6fa__crown,.FrogCritter-module__B5T6fa__musicNotes span,.FrogCritter-module__B5T6fa__trailSpark{animation:none}}
.AmbientMandalas-module__A5sG5a__mandala{pointer-events:none;z-index:0;opacity:0;filter:drop-shadow(0 0 10px #fff5d238)drop-shadow(0 0 24px #b482ff1f);mix-blend-mode:screen;animation:AmbientMandalas-module__A5sG5a__mandalaLifecycle var(--period,12s)ease-in-out infinite;animation-delay:var(--delay,0s);animation-fill-mode:backwards;position:fixed}.AmbientMandalas-module__A5sG5a__mandala:before,.AmbientMandalas-module__A5sG5a__mandala:after{content:"";opacity:.55;background:radial-gradient(circle,#ffffff2e,#0000 58%);border-radius:50%;position:absolute;inset:18%;transform:scale(.88)}.AmbientMandalas-module__A5sG5a__mandala:after{background:radial-gradient(circle,#ffe88d57,#0000 64%);animation:2.8s ease-in-out infinite AmbientMandalas-module__A5sG5a__tinyPulse;inset:38%}.AmbientMandalas-module__A5sG5a__glyph{z-index:1;position:relative;overflow:visible}@keyframes AmbientMandalas-module__A5sG5a__mandalaLifecycle{0%{opacity:0;transform:translateY(12px)scale(.42)rotate(-24deg)}12%{opacity:.82;transform:translate(0,0)scale(1)rotate(0)}48%{opacity:.68;transform:translate(6px,-7px)scale(1.04)rotate(9deg)}76%{opacity:.48;transform:translate(-4px,5px)scale(.94)rotate(16deg)}92%,to{opacity:0;transform:translateY(-10px)scale(.38)rotate(28deg)}}@keyframes AmbientMandalas-module__A5sG5a__tinyPulse{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:.72;transform:scale(1.2)}}.AmbientMandalas-module__A5sG5a__spinCW{transform-box:fill-box;transform-origin:50%;animation:AmbientMandalas-module__A5sG5a__svgSpinCW var(--outer-spin,25s)linear infinite}.AmbientMandalas-module__A5sG5a__spinCCW{transform-box:fill-box;transform-origin:50%;animation:AmbientMandalas-module__A5sG5a__svgSpinCCW var(--inner-spin,16s)linear infinite}.AmbientMandalas-module__A5sG5a__twinkleRing{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite AmbientMandalas-module__A5sG5a__twinkle}@keyframes AmbientMandalas-module__A5sG5a__svgSpinCW{to{transform:rotate(360deg)}}@keyframes AmbientMandalas-module__A5sG5a__svgSpinCCW{to{transform:rotate(-360deg)}}@keyframes AmbientMandalas-module__A5sG5a__twinkle{0%,to{opacity:.35;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}@media (max-width:760px){.AmbientMandalas-module__A5sG5a__mandala{opacity:0;transform-origin:50%}.AmbientMandalas-module__A5sG5a__mandala:first-child,.AmbientMandalas-module__A5sG5a__mandala:nth-child(4),.AmbientMandalas-module__A5sG5a__mandala:nth-child(5),.AmbientMandalas-module__A5sG5a__mandala:nth-child(8){display:none}}@media (prefers-reduced-motion:reduce){.AmbientMandalas-module__A5sG5a__mandala,.AmbientMandalas-module__A5sG5a__mandala:after,.AmbientMandalas-module__A5sG5a__spinCW,.AmbientMandalas-module__A5sG5a__spinCCW,.AmbientMandalas-module__A5sG5a__twinkleRing{animation:none}.AmbientMandalas-module__A5sG5a__mandala{opacity:.42}}
