#infinite-grid-menu-canvas{cursor:grab;width:100%;height:100%;overflow:hidden;position:relative;outline:none}#infinite-grid-menu-canvas:active{cursor:grabbing}.action-button{position:absolute;left:50%;z-index:10;width:60px;height:60px;display:grid;place-items:center;background:#0f0;border:none;border-radius:50%;cursor:pointer;border:5px solid #000000}.face-title{-webkit-user-select:none;user-select:none;position:absolute;font-weight:900;font-size:3rem;left:1.6em;top:50%}.action-button-icon{-webkit-user-select:none;user-select:none;position:relative;color:#000;top:-13px;font-size:26px}.face-title{position:absolute;top:50%;transform:translate(20%,-50%)}.face-title.active{opacity:1;transform:translate(20%,-50%);pointer-events:auto;transition:.5s ease}.face-title.inactive{pointer-events:none;opacity:0;transition:.1s ease}.face-description{-webkit-user-select:none;user-select:none;position:absolute;max-width:10ch;top:50%;font-size:1.2rem;right:1%;transform:translateY(-50%)}.face-description.active{opacity:1;transform:translate(-90%,-50%);pointer-events:auto;transition:.5s ease}.face-description.inactive{pointer-events:none;transform:translate(-60%,-50%);opacity:0;transition:.1s ease}.action-button{position:absolute;left:50%}.action-button.active{bottom:3.8em;transform:translate(-50%) scale(1);opacity:1;pointer-events:auto;transition:.5s ease}.action-button.inactive{bottom:-80px;transform:translate(-50%) scale(0);opacity:0;pointer-events:none;transition:.1s ease}@media(max-width:1500px){.face-title,.face-description{display:none}}----------------------------- html,body,#root{margin:0;height:100%;width:100%}body{font-family:sans-serif;color:#fff;background:#000}.app{width:100%;height:100%;position:relative}.background{position:fixed;inset:0;z-index:0}.ui{position:fixed;inset:0;z-index:10;pointer-events:none}.top-bar,.bottom-bar{position:absolute;width:100%;height:80px;display:flex;justify-content:center;align-items:center;background:#000}.top-bar{top:0}.bottom-bar{bottom:0}.page{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.portfolio-panel{width:650px;max-width:90%;padding:40px;background:#14141eb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(255,255,255,.15);color:#fff;pointer-events:auto;animation:fadeIn .6s ease}.portfolio-panel.closing{animation:fadeOut .5s ease forwards}.project-list{list-style:none;padding:0;margin-top:25px}.project-list li{margin-bottom:20px}.project-list a{font-size:1.2rem;color:#8bd6ff;text-decoration:none}.project-list a:hover{text-decoration:underline}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.terminal-page{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;pointer-events:none;animation:fadeIn .6s ease forwards}.terminal-page.fade-out{animation:fadeOut .45s ease forwards}.terminal-window{width:720px;max-width:92%;height:70vh;background:#000000d1;border:2px solid #00dd00;padding:32px;box-shadow:0 0 25px #0f03,inset 0 0 35px #00ff001f;pointer-events:auto;font-family:VT323,monospace;color:#0d0;display:flex;flex-direction:column}.terminal-content{margin-top:20px;line-height:1.4;font-size:1.25rem;text-shadow:0 0 3px rgba(0,255,0,.6);flex:1;overflow-y:scroll;padding-right:10px}.terminal-content a{text-shadow:none;color:#08f}.terminal-footer{margin-top:20px;display:flex;justify-content:flex-end;flex-shrink:0}.terminal-back{background:transparent;border:1px solid #00dd00;color:#0d0;font-family:VT323,monospace;font-size:1.2rem;padding:8px 26px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}.terminal-back:hover{background:#0d0;color:#000;box-shadow:0 0 8px #0f09}.wrapper{pointer-events:auto}
