body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.body{background-color:#000}.Home{align-items:center;background-image:url(/static/media/NightCity.e4aad4f438e50f89347c.jpg);background-position:50%;background-size:cover;flex-direction:column;height:100%;justify-content:center;left:0;top:0;width:100%}.Hero-photo-btn,.Home{display:flex;position:fixed}.Hero-photo-btn{background:transparent;border:none;border-radius:50%;cursor:pointer;height:42vmin;left:auto;padding:0;top:auto;width:42vmin}.Hero-photo-btn:focus-visible{outline:3px solid #60a5fa;outline-offset:4px}.Hero-image{border-radius:50%;display:block;height:100%;object-fit:cover;width:100%}.Hero-loader{align-items:inherit;-webkit-animation:spin 30s linear infinite;animation:spin 30s linear infinite;border-bottom:.5em solid navy;border-top:.5em solid navy;border-color:#000 navy;border-radius:50%;border-style:solid;border-width:.5em;display:inherit;height:42vmin;justify-content:inherit;left:auto;position:inherit;top:auto;width:42vmin}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}}.Menu{align-items:center;display:flex;justify-content:center;position:relative}.ProjectsPage{background-color:#000;height:100%;left:0;position:fixed;top:0;width:100%}.AboutMePage{-ms-overflow-style:none;height:90%;height:100vh;overflow-y:auto;overflow-y:scroll;position:relative;scrollbar-width:none;width:90%}.AboutMePage::-webkit-scrollbar{display:none}.orbit-stage{height:1px;position:relative;width:1px}.orbit-center{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.orbit-center,.orbit-item{left:50%;position:absolute;top:50%}.orbit-item{-webkit-animation:orbit-item-enter .6s cubic-bezier(.34,1.56,.64,1) backwards;animation:orbit-item-enter .6s cubic-bezier(.34,1.56,.64,1) backwards;will-change:transform}.orbit-item-inner{align-items:center;-webkit-animation:orbit-item-glow 4.5s ease-in-out infinite;animation:orbit-item-glow 4.5s ease-in-out infinite;background:#fff;border-radius:50%;box-shadow:0 0 0 rgba(96,165,250,0);display:flex;height:clamp(44px,11vmin,72px);justify-content:center;transition:box-shadow .4s ease,-webkit-transform .4s cubic-bezier(.34,1.56,.64,1);transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease,-webkit-transform .4s cubic-bezier(.34,1.56,.64,1);width:clamp(44px,11vmin,72px)}.orbit-item-inner:focus-within,.orbit-item-inner:hover{box-shadow:0 0 26px 6px rgba(96,165,250,.65);-webkit-transform:scale(1.22);transform:scale(1.22)}.orbit-item-inner a,.orbit-item-inner button{align-items:center;background:transparent;border:none;border-radius:50%;box-sizing:border-box;color:#000;cursor:pointer;display:flex;height:100%;justify-content:center;padding:.5em;width:100%}.orbit-item-inner img{height:100%;object-fit:contain;pointer-events:none;width:100%}.orbit-item-inner a:focus-visible,.orbit-item-inner button:focus-visible{outline:3px solid #60a5fa;outline-offset:3px}@-webkit-keyframes orbit-item-enter{0%{opacity:0;-webkit-transform:translate(-50%,-50%) scale(.4);transform:translate(-50%,-50%) scale(.4)}to{opacity:1}}@keyframes orbit-item-enter{0%{opacity:0;-webkit-transform:translate(-50%,-50%) scale(.4);transform:translate(-50%,-50%) scale(.4)}to{opacity:1}}@-webkit-keyframes orbit-item-glow{0%,to{box-shadow:0 0 6px 1px rgba(96,165,250,.18)}50%{box-shadow:0 0 16px 3px rgba(96,165,250,.32)}}@keyframes orbit-item-glow{0%,to{box-shadow:0 0 6px 1px rgba(96,165,250,.18)}50%{box-shadow:0 0 16px 3px rgba(96,165,250,.32)}}@media (prefers-reduced-motion:reduce){.orbit-item,.orbit-item-inner{-webkit-animation:none;animation:none}.orbit-item-inner{transition:box-shadow .3s ease}}.about-container{-webkit-animation:fadeIn 1.5s ease;animation:fadeIn 1.5s ease;background-color:#000;border:1px solid #2a2a2a;border-radius:12px;box-shadow:0 0 40px rgba(0,0,0,.8);color:#f5f5f5;font-family:Segoe UI,sans-serif;margin:0 auto;max-width:1000px;padding:2rem}.about-header h1{color:#fff;font-size:2.8rem;margin-bottom:.2rem}.about-subtitle{color:#cfcfcf;font-size:1.2rem;font-style:italic}.about-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:2fr 1fr;margin-top:2rem}.about-text p{color:#e2e2e2;line-height:1.6;margin-bottom:1rem}.about-photo .photo-placeholder{align-items:center;background-color:#111;border:1px solid #444;border-radius:8px;color:#999;display:flex;font-weight:700;justify-content:center;padding-top:100%;width:100%}.about-skills{margin-top:3rem}.about-skills h2,.about-timeline h2{color:#fff}.skills-grid{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.skill-pill{background-color:#000;border:1px solid #fff;border-radius:999px;color:#f0f0f0;font-size:.95rem;padding:.5rem 1rem;transition:background .3s,color .3s,-webkit-transform .3s;transition:background .3s,color .3s,transform .3s;transition:background .3s,color .3s,transform .3s,-webkit-transform .3s}.skill-pill:hover{background-color:#fff;color:#000;-webkit-transform:scale(1.05);transform:scale(1.05)}.skills-groups{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.skills-group-title{color:#fff;font-size:1rem;font-weight:700;letter-spacing:.04em;margin-bottom:.5rem;text-transform:uppercase}.skills-group .skills-grid{margin-top:0}.about-timeline{margin-top:3rem}.timeline{color:#d6d6d6;list-style:none;padding:0}.timeline li{margin-bottom:1rem;padding-left:1.5rem;position:relative}.timeline li:before{color:#fff;content:"•";font-size:1.3rem;font-weight:700;left:0;position:absolute;top:-.1rem}.about-grid-sections{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(2,1fr);margin-top:3rem}.about-section h2{color:#fff;font-size:1.3rem}.info-list{color:#d6d6d6;list-style:none;margin-top:.75rem;padding:0}.info-list li{line-height:1.5;margin-bottom:.6rem;padding-left:1.5rem;position:relative}.info-list li:before{color:#fff;content:"•";font-size:1.3rem;font-weight:700;left:0;position:absolute;top:-.1rem}.info-org{color:#aaa}@media (max-width:768px){.about-grid-sections{grid-template-columns:1fr}}.about-footer{border-top:1px solid #444;color:#e2e2e2;font-size:1.1rem;font-style:italic;margin-top:4rem;padding-top:2rem;text-align:center}@-webkit-keyframes fadeIn{0%{opacity:0;-webkit-transform:translateY(16px);transform:translateY(16px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;-webkit-transform:translateY(16px);transform:translateY(16px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@media (max-width:768px){.about-content{grid-template-columns:1fr}.about-photo{order:-1}}.about-photo-btn{background:transparent;border:none;border-radius:50%;cursor:pointer;display:block;padding:0}.about-photo-btn:focus-visible{outline:3px solid #fff;outline-offset:4px}.about-photo-img{border:2px solid #fff;border-radius:8px;border-radius:50%;max-width:42vmin;object-fit:cover;width:100%}.tech-keyword{color:#fff;font-weight:700;position:relative;transition:all .3s}.tech-keyword:hover:after{background:#fff;bottom:-2px;content:"";height:2px;left:0;position:absolute;width:100%}.portal-orbit-anchor{height:0;pointer-events:none;position:fixed;width:0;z-index:1000}.portal-orbit-anchor .orbit-item{pointer-events:auto}.ProjectsPage{align-items:center;justify-content:center}.ProjectsPage,.projects-container{box-sizing:border-box;display:flex;padding:2rem}.projects-container{background-color:#000;border:1px solid #2a2a2a;border-radius:12px;box-shadow:0 0 40px rgba(0,0,0,.8);color:#f5f5f5;flex-direction:column;font-family:Segoe UI,sans-serif;max-height:90vh;max-width:1000px;width:100%}.projects-nav{display:flex;justify-content:flex-end;margin-bottom:.5rem}.projects-nav a{border:1px solid #fff;border-radius:999px;color:#f5f5f5;font-size:.9rem;padding:.4rem 1rem;text-decoration:none;transition:background-color .2s ease,color .2s ease}.projects-nav a:focus-visible,.projects-nav a:hover{background-color:#fff;color:#000}.projects-header h1{color:#fff;font-size:2.4rem;margin-bottom:.2rem;margin-top:0}.projects-subtitle{color:#cfcfcf;font-size:1.1rem;font-style:italic;margin-top:0}.projects-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:1.5rem;overflow-y:auto;padding-right:.5rem}.project-panel{background-color:#000;border:1px solid #fff;border-radius:10px;color:#f5f5f5;cursor:pointer;display:block;padding:1.25rem;text-decoration:none;transition:background-color .25s ease,color .25s ease,-webkit-transform .25s ease;transition:background-color .25s ease,color .25s ease,transform .25s ease;transition:background-color .25s ease,color .25s ease,transform .25s ease,-webkit-transform .25s ease}.project-panel h2{color:inherit;font-size:1.2rem;margin:0 0 .5rem}.project-panel p{color:#bbb;font-size:.92rem;margin:0}.project-panel:focus-visible,.project-panel:hover{background-color:#fff;color:#000;-webkit-transform:translateY(-3px);transform:translateY(-3px)}.project-panel:focus-visible p,.project-panel:hover p{color:#333}.project-panel:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}.project-panel-disabled{border-color:#555;border-style:dashed;color:#777;cursor:default}.project-panel-disabled h2{color:#999}.project-panel-disabled p{color:#666}.ProjectDetailPage{align-items:center;background-color:#000;box-sizing:border-box;color:#f5f5f5;display:flex;flex-direction:column;font-family:Segoe UI,sans-serif;height:100%;left:0;padding:2rem;position:fixed;top:0;width:100%}.project-detail-nav{display:flex;justify-content:space-between;margin-bottom:1.5rem;max-width:1000px;width:100%}.project-detail-action,.project-detail-nav a{background-color:initial;border:1px solid #fff;border-radius:999px;color:#f5f5f5;cursor:pointer;font-size:.9rem;padding:.4rem 1rem;text-decoration:none;transition:background-color .2s ease,color .2s ease}.project-detail-action:focus-visible,.project-detail-action:hover,.project-detail-nav a:focus-visible,.project-detail-nav a:hover{background-color:#fff;color:#000}.project-detail-nav-right{display:flex;gap:.75rem}.ProjectDetailPage h1{color:#fff;margin-top:0}.project-detail-stage{align-items:center;display:flex;flex:1 1;justify-content:center;max-width:100%;overflow:auto;width:100%}.project-detail-stage-digital-clock>*{margin-top:-164px}.project-detail-missing{text-align:center}@media (max-width:600px){.projects-container{padding:1.25rem}.project-detail-nav{align-items:flex-start;flex-direction:column;gap:.5rem}}.analog-clock{align-items:center;aspect-ratio:1;container-type:inline-size;display:flex;justify-content:center;margin:auto;width:min(90vw,60vh,30em)}.face{align-items:center;background:radial-gradient(circle at center,#141414 40%,#000 90%);border:.8em solid #fff;border-radius:50%;box-shadow:inset 0 0 1.2em hsla(0,0%,100%,.15),0 0 2.5em hsla(0,0%,100%,.12);display:flex;font-size:3.333cqw;justify-content:center;overflow:visible}.clock-inner,.face{box-sizing:border-box;height:100%;position:relative;width:100%}.numeral{color:#f5f5f5;font-family:Georgia,serif;font-size:1.4em;font-weight:700;height:2em;margin:-1em 0 0 -1em;pointer-events:none;text-align:center;-webkit-transform-origin:center;transform-origin:center;width:2em}.numeral,.tick{left:50%;position:absolute;top:50%}.tick{background-color:#999;border-radius:.05em;height:.6em;-webkit-transform-origin:center bottom;transform-origin:center bottom;width:.12em}.hour-tick{background-color:#fff;height:1em;width:.24em}.hand{bottom:50%;left:50%;position:absolute;-webkit-transform-origin:bottom center;transform-origin:bottom center}.hand.hour{background-color:#fff;-webkit-clip-path:polygon(50% 0,62% 20%,50% 100%,38% 20%);clip-path:polygon(50% 0,62% 20%,50% 100%,38% 20%);height:30%;width:.6em;z-index:3}.hand.minute{background-color:#e2e2e2;-webkit-clip-path:polygon(50% 0,60% 18%,50% 100%,40% 18%);clip-path:polygon(50% 0,60% 18%,50% 100%,40% 18%);height:42%;width:.4em;z-index:2}.hand.second{background-color:#d81e3f;-webkit-clip-path:polygon(50% 0,55% 15%,50% 100%,45% 15%);clip-path:polygon(50% 0,55% 15%,50% 100%,45% 15%);height:48%;width:.2em;z-index:1}.center-dot{background-color:#fff;border:.15em solid #000;border-radius:50%;height:.9em;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:.9em;z-index:5}.ttt-game{align-items:center;display:flex;flex-direction:column;font-family:Segoe UI,sans-serif}.ttt-viewport{background-color:#000;border:1px solid #fff;border-radius:8px;cursor:grab;height:min(60vh,420px);overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:min(90vw,480px)}.ttt-viewport:active{cursor:grabbing}.ttt-surface{position:relative}.ttt-square{align-items:center;background-color:#000;border:1px solid #333;box-sizing:border-box;color:#fff;display:flex;font-size:1.6rem;font-weight:700;justify-content:center;position:absolute;transition:background-color .3s ease}.ttt-square-win{background-color:#fff;border-color:#fff;color:#000}.ttt-hint{color:#999;font-size:.85rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.status{color:#f5f5f5;margin-top:.5rem}
/*# sourceMappingURL=main.bae41c7f.css.map*/