*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}#root{width:100%;height:100%}@font-face{font-family:Offbit;src:url(/assets/OffBit-DotBold-BUQKZ2zg.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Cravelo;src:url(/assets/cravelo-demo-BLH5-CZo.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@property --angle-1{syntax: "<angle>"; inherits: false; initial-value: -75deg;}@property --angle-2{syntax: "<angle>"; inherits: false; initial-value: -45deg;}:root{--global--size: clamp(.7rem, 1.4vw, 1.4rem);--anim--hover-time: .4s;--anim--hover-ease: cubic-bezier(.25, 1, .5, 1)}body,html,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background-color:#000;-webkit-font-smoothing:antialiased}#canvas-container{position:fixed;inset:0;z-index:1}.hero-overlay{position:relative;z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;pointer-events:none;perspective:1200px}h1{font-family:Offbit,sans-serif;font-size:clamp(3rem,10vw,7rem);margin:0 0 1.5rem;text-transform:uppercase;letter-spacing:-2px;color:#fff;text-shadow:0 0 20px rgba(224,195,252,.4);-webkit-text-stroke:1px #E0C3FC}h2:not(.project-title){-webkit-text-stroke:.5px #E0C3FC;text-shadow:0 0 10px rgba(224,195,252,.3)}.button-wrap{position:relative;z-index:2;border-radius:999vw;background:transparent;pointer-events:none;transition:all var(--anim--hover-time) var(--anim--hover-ease);font-size:var(--global--size);transform-style:preserve-3d;backface-visibility:hidden}.button-shadow{--shadow-cuttoff-fix: 2em;position:absolute;width:calc(100% + var(--shadow-cuttoff-fix));height:calc(100% + var(--shadow-cuttoff-fix));top:calc(0% - var(--shadow-cuttoff-fix) / 2);left:calc(0% - var(--shadow-cuttoff-fix) / 2);filter:blur(clamp(2px,.125em,12px));overflow:visible;pointer-events:none;transition:all var(--anim--hover-time) var(--anim--hover-ease)}.button-shadow:after{content:"";position:absolute;z-index:0;inset:0;border-radius:999vw;background:linear-gradient(180deg,#ffffff1a,#0006);width:calc(100% - var(--shadow-cuttoff-fix) - .25em);height:calc(100% - var(--shadow-cuttoff-fix) - .25em);top:calc(var(--shadow-cuttoff-fix) - .5em);left:calc(var(--shadow-cuttoff-fix) - .875em);padding:.125em;box-sizing:border-box;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:all var(--anim--hover-time) var(--anim--hover-ease);opacity:1}button{--border-width: clamp(1px, .0625em, 4px);all:unset;cursor:pointer;position:relative;pointer-events:auto;z-index:3;background:linear-gradient(-75deg,#d6b9fc0d,#d6b9fc33,#d6b9fc0d);border-radius:999vw;box-shadow:inset 0 .125em .125em #0000000d,inset 0 -.125em .125em #ffffff80,0 .25em .125em -.125em #0003,0 0 .1em .25em inset #fff3;-webkit-backdrop-filter:blur(clamp(1px,.125em,4px));backdrop-filter:blur(clamp(1px,.125em,4px));transition:all var(--anim--hover-time) var(--anim--hover-ease);-webkit-user-select:none;user-select:none}button:hover{transform:scale(.975);-webkit-backdrop-filter:blur(.01em);backdrop-filter:blur(.01em);box-shadow:inset 0 .125em .125em #0000000d,inset 0 -.125em .125em #ffffff80,0 .15em .05em -.1em #00000040,0 0 .05em .1em inset #ffffff80}button span{position:relative;display:block;font-family:Inter,sans-serif;letter-spacing:-.05em;font-weight:500;font-size:1em;color:#fffffff2;text-shadow:0em .25em .05em rgba(0,0,0,.1);padding-inline:1.5em;padding-block:.875em;transition:all var(--anim--hover-time) var(--anim--hover-ease)}button:hover span{text-shadow:.025em .025em .025em rgba(0,0,0,.12)}.button-wrap:has(button:hover) .button-shadow:after{top:calc(var(--shadow-cuttoff-fix) - .875em);opacity:1}.button-wrap.pressed{transform:rotateX(35deg) translateY(8px)}.button-wrap.pressed button{box-shadow:inset 0 .125em .125em #0000000d,inset 0 -.125em .125em #ffffff80,0 .125em .125em -.125em #0003,0 0 .1em .25em inset #fff3,0 .225em .05em #0000000d,0 .25em #ffffffbf,inset 0 .25em .05em #00000026}.button-wrap.pressed .button-shadow{filter:blur(clamp(2px,.125em,12px))}.button-wrap.pressed .button-shadow:after{top:calc(var(--shadow-cuttoff-fix) - .5em);opacity:.75}.button-wrap.pressed span{text-shadow:.025em .25em .05em rgba(0,0,0,.12)}button:after{content:"";position:absolute;z-index:1;inset:0;border-radius:999vw;width:calc(100% + var(--border-width));height:calc(100% + var(--border-width));top:calc(0% - var(--border-width) / 2);left:calc(0% - var(--border-width) / 2);padding:var(--border-width);box-sizing:border-box;background:conic-gradient(from var(--angle-1) at 50% 50%,rgba(255,255,255,.3),transparent 5% 40%,rgba(255,255,255,.7) 50%,transparent 60% 95%,rgba(255,255,255,.3)),linear-gradient(180deg,#ffffff80,#ffffff80);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:all var(--anim--hover-time) var(--anim--hover-ease),--angle-1 .5s ease}.dotted-grid{position:absolute;inset:0;opacity:.1;pointer-events:none}.planet-menu-wrapper{position:relative}.planet-menu-toggle{outline:none}.planet-menu-toggle:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:4px;border-radius:50%}.glass-nav-menu{min-width:160px}.glass-nav-item{position:relative;overflow:hidden}.glass-nav-item:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-100%);transition:transform .3s ease}.glass-nav-item:hover:before{transform:translate(100%)}.planet-toggle-demo{position:fixed;top:2rem;right:2rem;z-index:100;display:flex;flex-direction:row-reverse;align-items:flex-start}.glass-content-box{--border-width: clamp(1px, .0625em, 4px);position:relative;background:linear-gradient(-75deg,#d6b9fc0d,#d6b9fc26,#d6b9fc0d);border-radius:24px;box-shadow:inset 0 2px 4px #0000000d,inset 0 -2px 4px #ffffff4d,0 8px 32px #0000004d,inset 0 0 4px 8px #ffffff1a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:2rem;color:#fff;font-family:Inter,sans-serif;transition:all var(--anim--hover-time) var(--anim--hover-ease)}.glass-content-box:after{content:"";position:absolute;z-index:1;inset:0;border-radius:24px;width:calc(100% + var(--border-width));height:calc(100% + var(--border-width));top:calc(0% - var(--border-width) / 2);left:calc(0% - var(--border-width) / 2);padding:var(--border-width);box-sizing:border-box;background:conic-gradient(from var(--angle-1) at 50% 50%,rgba(255,255,255,.2),transparent 5% 40%,rgba(255,255,255,.5) 50%,transparent 60% 95%,rgba(255,255,255,.2)),linear-gradient(180deg,#ffffff4d,#ffffff4d);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.glass-content-box:hover{box-shadow:inset 0 2px 4px #0000000d,inset 0 -2px 4px #fff6,0 12px 40px #0006,inset 0 0 4px 8px #ffffff26}.glass-card{background:linear-gradient(-45deg,#d6b9fc08,#d6b9fc1a,#d6b9fc08);border-radius:16px;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:1.5rem;transition:all .3s ease}.glass-card:hover{border-color:#fff3;transform:translateY(-4px);box-shadow:0 16px 48px #0000004d}@media screen and (max-width:768px){.planet-toggle-demo{top:1rem;right:1rem;flex-direction:column;align-items:flex-end}.glass-nav-menu{flex-direction:column!important;min-width:140px;padding:.75rem;margin-top:.5rem}.glass-nav-item{width:100%;justify-content:flex-start}.hero-overlay{padding:1rem}h1{font-size:clamp(2rem,8vw,4rem);letter-spacing:-1px}.glass-content-box{padding:1.5rem;border-radius:16px;margin:1rem}.button-wrap{font-size:clamp(.6rem,1.2vw,1.2rem)}}@media screen and (min-width:769px)and (max-width:1024px){.planet-toggle-demo{top:1.5rem;right:1.5rem}.glass-nav-menu{gap:.35rem}}@media screen and (max-width:896px)and (orientation:landscape){.hero-overlay{height:auto;min-height:100vh;padding:2rem}h1{font-size:clamp(1.5rem,5vw,3rem);margin-bottom:1rem}.glass-content-box{max-height:80vh;overflow-y:auto}}@media screen and (max-width:375px){.planet-toggle-demo{top:.75rem;right:.75rem}.glass-nav-menu{min-width:120px;padding:.5rem}.glass-nav-item{padding:.5rem .75rem!important;font-size:.85rem!important}h1{font-size:clamp(1.5rem,7vw,2.5rem)}}.page-container{width:100%;height:100%;min-height:100vh;position:relative;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.page-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;padding:6rem 2rem 2rem;flex:1;width:100%}.page-title{font-family:OffBit,sans-serif;font-size:clamp(2rem,6vw,4rem);margin:0 0 2rem;text-transform:capitalize;letter-spacing:-2px;color:#fff;text-shadow:0 0 20px rgba(224,195,252,.4);-webkit-text-stroke:1px #E0C3FC;text-align:center}.project-title{font-family:Cravelo,sans-serif;letter-spacing:1px}.page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;width:100%;max-width:1200px}@media screen and (max-width:768px){.page-content{padding:5rem 1rem 1rem}.page-grid{grid-template-columns:1fr}}.about-layout{display:flex;flex-direction:row;gap:3rem;max-width:1200px;width:100%;align-items:flex-start;justify-content:center;position:relative;padding-top:1rem}.about-left{display:flex;flex-direction:column;align-items:center;gap:2rem;position:relative;width:300px;flex-shrink:0}.resume-button-wrap{position:relative;z-index:2;border-radius:999vw;background:transparent;transition:all var(--anim--hover-time) var(--anim--hover-ease);font-size:var(--global--size);transform-style:preserve-3d;backface-visibility:hidden;cursor:pointer;text-decoration:none;display:inline-block}.resume-button-wrap:hover{transform:scale(.975)}.resume-button-wrap.pressed{transform:rotateX(35deg) translateY(8px)}.resume-button-content{--border-width: clamp(1px, .0625em, 4px);all:unset;cursor:pointer;position:relative;display:block;pointer-events:auto;z-index:3;background:linear-gradient(-75deg,#d6b9fc0d,#d6b9fc33,#d6b9fc0d);border-radius:999vw;box-shadow:inset 0 .125em .125em #0000000d,inset 0 -.125em .125em #ffffff80,0 .25em .125em -.125em #0003,0 0 .1em .25em inset #fff3;-webkit-backdrop-filter:blur(clamp(1px,.125em,4px));backdrop-filter:blur(clamp(1px,.125em,4px));transition:all var(--anim--hover-time) var(--anim--hover-ease);-webkit-user-select:none;user-select:none;padding:.8rem 1.5rem;color:#fffffff2;font-family:Inter,sans-serif;font-weight:500;font-size:1rem;text-align:center;text-shadow:0em .25em .05em rgba(0,0,0,.1)}.resume-button-wrap:hover .resume-button-content{-webkit-backdrop-filter:blur(.01em);backdrop-filter:blur(.01em);box-shadow:inset 0 .125em .125em #0000000d,inset 0 -.125em .125em #ffffff80,0 .15em .05em -.1em #00000040,0 0 .05em .1em inset #ffffff80}.resume-button-content:after{content:"";position:absolute;z-index:1;inset:0;border-radius:999vw;width:calc(100% + var(--border-width));height:calc(100% + var(--border-width));top:calc(0% - var(--border-width) / 2);left:calc(0% - var(--border-width) / 2);padding:var(--border-width);box-sizing:border-box;background:conic-gradient(from var(--angle-1) at 50% 50%,rgba(255,255,255,.3),transparent 5% 40%,rgba(255,255,255,.7) 50%,transparent 60% 95%,rgba(255,255,255,.3)),linear-gradient(180deg,#ffffff80,#ffffff80);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;transition:all var(--anim--hover-time) var(--anim--hover-ease)}.profile-image-container{width:70%;margin-top:2rem;position:relative;aspect-ratio:1/1;border-radius:50%;background:#ffffff0d;overflow:hidden}.profile-image{width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 10px 30px #0000004d;border:2px solid rgba(255,255,255,.1);transition:transform .3s ease,opacity .5s ease;opacity:0;z-index:2;position:relative}.profile-image-container:after{content:"";position:absolute;z-index:3;inset:0;border-radius:50%;padding:2px;background:linear-gradient(135deg,#ffffff4d,#ffffff0d,#ffffff4d);-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;transition:all .5s ease}.profile-image-container:hover:after{background:linear-gradient(135deg,#b794f4cc,#b794f433,#b794f4cc);transform:rotate(180deg)}.profile-image.loaded{opacity:1}.profile-image-placeholder{position:absolute;inset:0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#ffffff1a,#ffffff0d);z-index:1;animation:pulse-placeholder 1.5s infinite ease-in-out;pointer-events:none}@keyframes pulse-placeholder{0%{opacity:.5}50%{opacity:.8}to{opacity:.5}}.profile-image:hover{border-color:#b794f480}.about-content{flex:1;text-align:left;max-width:700px}@media screen and (max-width:900px){.about-layout{flex-direction:column;align-items:center;gap:2rem}.about-left{width:100%;max-width:400px;align-items:center;flex-direction:column-reverse}.profile-image-container{margin-top:1rem;width:50%}}
