:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:#242424}#root{width:100%;height:100vh;display:flex;justify-content:center;align-items:center}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.nokia-interface{position:relative;background-color:#84a062;height:100%;display:flex;flex-direction:column;overflow:hidden;width:100%}.content{height:100%;flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.status-bar{position:fixed;top:112px;left:30px;right:0;z-index:1000;display:flex!important;justify-content:space-between;align-items:center;padding:0 4px;height:16px;background-color:#84a062;border-bottom:1px solid #2c2c2c;width:78%}.signal-strength{flex:0 0 auto;display:flex;gap:1px;align-items:flex-end;height:8px;min-width:20px}.signal-bar{width:2px;background-color:#2c2c2c;opacity:.3}.signal-bar.active{opacity:1}.signal-bar:nth-child(1){height:2px}.signal-bar:nth-child(2){height:4px}.signal-bar:nth-child(3){height:6px}.signal-bar:nth-child(4){height:8px}.time{flex:1;font-family:monospace;font-size:8px;color:#2c2c2c;font-weight:700;text-align:center}.battery-indicator{flex:0 0 auto;display:flex;gap:1px;align-items:center;height:8px;min-width:20px;justify-content:flex-end}.battery-bar{width:3px;height:6px;background-color:#2c2c2c;opacity:.3}.battery-bar.active{opacity:1}.menu{display:flex;flex-direction:column;height:100%;padding:0;margin:0;background-color:#84a062}.menu-item{display:flex;align-items:center;padding:4px 8px;gap:8px;background-color:#84a062;border:none;cursor:pointer;color:#2c2c2c;font-family:monospace;font-size:12px}.menu-item.active{background-color:#6b824f}.menu-icon{width:12px;height:12px;object-fit:contain;color:#2c2c2c}.menu-list{margin:0;padding:0;list-style:none}.navigation{margin-top:auto;padding:10px}.nav-hint,.keyboard-hint,.mobile-cursor{display:none}.typing-screen{flex:1;padding:10px;display:flex;flex-direction:column}.typed-text{font-family:monospace;font-size:16px;line-height:1.5;word-wrap:break-word;flex:1}.typing-hint{font-size:10px;text-align:center;padding:5px;background-color:#6b824f}.screen-area{position:relative;overflow:hidden}body{overflow:hidden;height:100vh;margin:0;padding:0}#root{height:100vh;overflow:hidden}.external-hints{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;color:#84a062;text-shadow:0 0 10px rgba(132,160,98,.5);font-family:monospace;z-index:1000}.hint-text{font-size:14px;animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{text-shadow:0 0 5px rgba(132,160,98,.5)}to{text-shadow:0 0 15px rgba(132,160,98,.8)}}@media (max-width: 768px){.mobile-cursor{display:block;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}}.screen-title{font-size:10px;text-align:center;padding:4px 0;margin:4px 0;border-bottom:1px solid #6b824f;text-transform:uppercase;width:100%;position:relative;background-color:#84a062}.navigation-hints{position:fixed;bottom:20px;right:20px;text-align:right;color:#84a062;font-family:monospace;font-size:14px;line-height:1.5;z-index:1000;background:none;padding:0;border-radius:0}.navigation-hints div{margin:5px 0;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.menu-item.active .menu-icon{filter:brightness(.1)}.interface-container{position:relative;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center}.external-controls{position:fixed;right:40px;transform:translateY(-50%);z-index:1000;color:#fff;font-family:monospace;top:80px;left:680px}.hint-section{display:flex;flex-direction:column;gap:8px}.hint-title{font-size:14px;color:#fff;text-align:right}.hint-item{font-size:12px;white-space:nowrap;text-shadow:1px 1px 2px rgba(0,0,0,.5);text-align:right}.status-bar-fixed{display:none}.phone-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:grid;grid-template-areas:". up ." "left middle right" ". down .";gap:5px}.phone-button{width:30px;height:30px;border:1px solid #2c2c2c;background-color:#6b824f;cursor:pointer;border-radius:50%}.phone-button.up{grid-area:up}.phone-button.down{grid-area:down}.phone-button.middle{grid-area:middle;background-color:#4a5d32}.phone-button.red{position:absolute;right:-40px;top:50%;transform:translateY(-50%);background-color:#8b0000}.nokia-button.selected{background-color:#4a5d32;color:#fff;border:2px solid #2c2c2c}.portfolio-container{width:100%;height:100%;display:flex;flex-direction:column;background-color:#c3cfa1;font-family:Nokia Cellphone FC,monospace;position:relative}.nokia-menu{display:flex;justify-content:space-around;padding:5px;border-bottom:2px solid #545454}.nokia-menu button{background:none;border:none;font-family:Nokia Cellphone FC,monospace;font-size:1em;color:#1a1a1a;cursor:pointer;padding:5px 10px}.nokia-menu button.active{background-color:#1a1a1a;color:#c3cfa1}.nokia-content{flex:1;overflow-y:auto;padding:10px 30px 10px 10px;scroll-behavior:smooth;position:relative}.nokia-section{margin-bottom:15px}.nokia-section h2{font-size:1.2em;margin-bottom:10px;border-bottom:1px solid #545454}.project-item{margin-bottom:15px;padding:5px;border:1px solid #545454}.project-item h3{margin:0 0 5px}.project-links{display:flex;gap:10px;margin-top:5px}.project-links a{color:#1a1a1a;text-decoration:none;border:1px solid #1a1a1a;padding:2px 5px}.project-links a:hover{background-color:#1a1a1a;color:#c3cfa1}.nokia-content::-webkit-scrollbar{width:8px}.nokia-content::-webkit-scrollbar-track{background:#a5b183}.nokia-content::-webkit-scrollbar-thumb{background:#545454}.scroll-buttons{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:10}.scroll-button{width:30px;height:30px;background-color:#545454;border:none;color:#c3cfa1;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .2s}.scroll-button:not(.disabled):hover{background-color:#1a1a1a}.scroll-button:not(.disabled):active{transform:scale(.95)}.scroll-button.disabled{opacity:.5;cursor:not-allowed;background-color:#6b824f}.scroll-button.up{border-radius:4px 4px 0 0}.scroll-button.down{border-radius:0 0 4px 4px}.scroll-indicator{position:absolute;right:45px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:5px;color:#1a1a1a;font-size:12px;pointer-events:none}.scroll-indicator .arrow{opacity:.7;animation:pulse 1s infinite}.scroll-indicator .arrow.up{animation-delay:0s}.scroll-indicator .arrow.down{animation-delay:.5s}@keyframes pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.snake-screen{width:100%;height:100%;background-color:#84a062;display:flex;flex-direction:column;padding:2px}.status-bar{font-family:monospace;font-size:8px;color:#2c2c2c;text-align:right;padding:2px 4px;background-color:#84a062}.game-area{flex:1;display:flex;justify-content:center;align-items:center;position:relative}.game-grid{width:30%;aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:1px;background-color:#6b824f;border:1px solid #2c2c2c;margin:auto}.row{display:contents}.cell{width:100%;height:100%;background-color:#84a062}.cell.snake,.cell.head{background-color:#2c2c2c}.cell.food{background-color:#2c2c2c;border-radius:50%}.game-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#84a062;padding:4px 8px;border:1px solid #2c2c2c;text-align:center;font-family:monospace;font-size:8px;color:#2c2c2c;line-height:1.4}.game-over{z-index:10}.game-start,.game-over{text-align:center;line-height:1.5}.score{font-family:monospace;color:#2c2c2c;font-size:10px;margin-bottom:4px}.nokia-text{font-family:monospace;color:#2c2c2c;font-size:10px}.nokia-screen{width:100%;height:100%;background-color:#84a062;display:flex;flex-direction:column;padding:4px}.game-header{font-size:8px;text-align:center;margin-bottom:2px}.game-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.game-score{font-size:8px;margin-top:2px}.game-overlay{position:absolute;background-color:#84a062;padding:4px 8px;border:1px solid #2c2c2c;font-size:8px;text-align:center}.wallet-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#84a062;padding:8px;border:1px solid #2c2c2c;text-align:center;z-index:20}.wallet-message{font-family:monospace;font-size:8px;color:#2c2c2c;margin-bottom:4px}.wallet-input{width:120px;font-family:monospace;font-size:8px;padding:2px;margin:2px 0;background-color:#6b824f;border:1px solid #2c2c2c;color:#2c2c2c}.submit-btn{font-family:monospace;font-size:8px;padding:2px 4px;background-color:#6b824f;border:1px solid #2c2c2c;color:#2c2c2c;cursor:pointer;margin-top:2px}.submit-btn:hover{background-color:#5d7144}.nokia-animation{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#84a062;display:flex;justify-content:center;align-items:center;z-index:100}.nokia-text{display:flex;justify-content:center;align-items:center;gap:4px}.nokia-text span{font-family:monospace;font-size:12px;font-weight:700;color:#2c2c2c;opacity:0;animation:fadeInOut 3s forwards}.nokia-text span:nth-child(1){animation-delay:0s}.nokia-text span:nth-child(2){animation-delay:.2s}.nokia-text span:nth-child(3){animation-delay:.4s}.nokia-text span:nth-child(4){animation-delay:.6s}.nokia-text span:nth-child(5){animation-delay:.8s}@keyframes fadeInOut{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}.menu-screen{width:100%;height:100%;display:flex;flex-direction:column;background-color:#c3cfa1;font-family:Nokia Cellphone FC,monospace;padding:15px}.menu-content{flex:1;overflow-y:auto}.menu-content h2{font-size:1.2em;margin-bottom:15px;border-bottom:1px solid #545454;padding-bottom:5px}.skills-list{list-style:none;padding:0;margin:0}.skills-list li{padding:5px 0;border-bottom:1px dotted #545454}.contact-list{display:flex;flex-direction:column;gap:10px}.contact-item{display:flex;flex-direction:column;gap:5px;padding:8px;border:1px solid #545454}.contact-item .label{font-weight:700;color:#1a1a1a}.contact-item a{color:#1a1a1a;text-decoration:none}.contact-item a:hover{text-decoration:underline}.menu-hint{text-align:center;color:#545454;font-size:12px;margin-top:15px}.typing-screen{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#c3cfa1;padding:20px;font-family:Nokia Cellphone FC,monospace}.typing-area{width:100%;min-height:60px;background-color:#c3cfa1;border:2px solid #545454;padding:10px;margin-bottom:20px;display:flex;align-items:center;font-size:24px}.typed-text{color:#1a1a1a;word-break:break-all}.cursor{display:inline-block;color:#1a1a1a;margin-left:2px;font-weight:700;opacity:0}.cursor.visible{opacity:1}.typing-hint{color:#545454;font-size:12px;margin:5px 0;text-align:center}.screen-area{width:240px;height:144px;background-color:#84a062;border:6px solid #2c2c2c;border-radius:2px;overflow:hidden;position:relative;box-shadow:inset 0 0 10px #0003}.status-bar{height:12px;display:flex;justify-content:space-between;padding:2px 4px;font-size:8px;background-color:#6b824f;border-bottom:1px solid #2c2c2c}.screen-content{padding:5px;font-size:10px}.keypad{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:10px}.nav-buttons{display:flex;flex-direction:column;align-items:center;gap:4px}.nav-middle{display:flex;gap:4px;position:relative}.nav-btn{width:35px;height:35px;background:linear-gradient(145deg,#2c3444,#1a232f);border:none;border-radius:50%;color:#d4d4d4;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 -2px 3px #0006,0 1px 2px #ffffff1a}.nav-btn.select{background:linear-gradient(145deg,#1a232f,#2c3444)}.function-buttons{display:flex;justify-content:space-between;padding:0 15px;margin:5px 0}.fn-btn{width:50px;height:25px;border-radius:12px;border:none;cursor:pointer;background:linear-gradient(145deg,#2c3444,#1a232f);position:relative;box-shadow:inset 0 -2px 3px #0006,0 1px 2px #ffffff1a}.fn-btn.green{background:linear-gradient(145deg,#43a047,#388e3c)}.fn-btn.red{background:linear-gradient(145deg,#e53935,#d32f2f)}.number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px}.num-btn{position:relative;height:35px;background:linear-gradient(145deg,#2c3444,#1a232f);border:none;border-radius:18px;color:#d4d4d4;cursor:pointer;font-size:14px;font-weight:700;box-shadow:inset 0 -2px 3px #0006,0 1px 2px #ffffff1a}.num-btn:after{content:attr(data-subtext);position:absolute;bottom:2px;left:50%;transform:translate(-50%);font-size:7px;opacity:.7;color:#a0a0a0;font-weight:400}.phone-container{background-color:#1f2937;border-radius:30px 30px 54px 54px;padding:18px;box-shadow:inset 0 0 18px #00000080,0 6px 18px #0000004d;width:288px;transform:scale(1.2);transform-origin:top center}.phone-frame{background:linear-gradient(145deg,#2c3444,#1a232f);border-radius:20px 20px 40px 40px;padding:20px 15px 25px;display:flex;flex-direction:column;align-items:center;gap:15px}.speaker{width:35px;height:4px;background:linear-gradient(90deg,#1a1a1a,#333,#1a1a1a);border-radius:2px;margin:5px 0 10px;position:relative}.nokia-brand{font-family:Arial,sans-serif;color:#d4d4d4;font-size:14px;font-weight:700;letter-spacing:1px;margin-bottom:10px;text-transform:uppercase}.initial-loader{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#84a062;z-index:9999;display:flex;justify-content:center;align-items:center}.loader-container{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.loader-grid{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.loader-dot{position:absolute;width:10px;height:10px;background-color:#1a1a1a;border-radius:50%;transition:all .3s ease-out}.loader-dot.fade{opacity:0;filter:blur(4px);transform:scale(1.5)}.loader-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:flex;flex-direction:column;align-items:center}.brand-text{font-family:Nokia Cellphone FC,monospace;font-size:80px;font-weight:700;color:#1a1a1a;text-align:center;letter-spacing:15px;opacity:0;display:flex;gap:8px}.brand-text span{display:inline-block;opacity:0;transform:translateY(20px) scale(.5);filter:blur(10px);transition:all .5s ease-out}.loader-content.glow .brand-text{opacity:1}.loader-content.glow .brand-text span{opacity:1;transform:translateY(0) scale(1);filter:blur(0);animation:brandGlow 2s infinite alternate}.loader-content.glow .brand-text span:nth-child(1){transition-delay:.1s}.loader-content.glow .brand-text span:nth-child(2){transition-delay:.2s}.loader-content.glow .brand-text span:nth-child(3){transition-delay:.3s}.loader-content.glow .brand-text span:nth-child(4){transition-delay:.4s}.loader-content.glow .brand-text span:nth-child(5){transition-delay:.5s}@keyframes brandGlow{0%{color:#1a1a1a;text-shadow:0 0 5px rgba(255,255,255,.5),0 0 10px rgba(255,255,255,.3);transform:scale(1)}to{color:#000;text-shadow:0 0 10px rgba(255,255,255,.8),0 0 20px rgba(255,255,255,.5),0 0 30px rgba(255,255,255,.3);transform:scale(1.05)}}.loader-gif{width:300px;height:160px;display:flex;justify-content:center;align-items:center}.loader-gif img{width:100%;height:100%;object-fit:contain}.nokia-loading-text{font-family:Nokia Cellphone FC,monospace;font-size:24px;font-weight:700;color:#1a1a1a;text-align:center;letter-spacing:2px;display:flex;gap:4px}.nokia-loading-text span{display:inline-block;animation:glow 1s ease-in-out infinite;text-shadow:0 0 5px rgba(255,255,255,.3)}.nokia-loading-text span:nth-child(1){animation-delay:0s}.nokia-loading-text span:nth-child(2){animation-delay:.1s}.nokia-loading-text span:nth-child(3){animation-delay:.2s}.nokia-loading-text span:nth-child(4){animation-delay:.3s}.nokia-loading-text span:nth-child(5){animation-delay:.4s}.nokia-loading-text span:nth-child(7){animation-delay:.5s}.nokia-loading-text span:nth-child(8){animation-delay:.6s}.nokia-loading-text span:nth-child(10){animation-delay:.7s}.nokia-loading-text span:nth-child(11){animation-delay:.8s}.nokia-loading-text span:nth-child(12){animation-delay:.9s}.nokia-loading-text span:nth-child(13){animation-delay:1s}.nokia-loading-text span:nth-child(14){animation-delay:1.1s}.nokia-loading-text span:nth-child(15){animation-delay:1.2s}.nokia-loading-text span:nth-child(16){animation-delay:1.3s}.nokia-loading-text span:nth-child(17){animation-delay:1.4s}.nokia-loading-text span:nth-child(18){animation-delay:1.5s}.nokia-loading-text span:nth-child(19){animation-delay:1.6s}@keyframes glow{0%,to{opacity:1;text-shadow:0 0 5px rgba(255,255,255,.5),0 0 10px rgba(255,255,255,.3);transform:scale(1)}50%{opacity:.8;text-shadow:0 0 10px rgba(255,255,255,.8),0 0 20px rgba(255,255,255,.5);transform:scale(1.05)}}.snake-eye{position:absolute;width:4px;height:4px;background-color:red;border-radius:50%;top:8px;box-shadow:0 0 4px red}.snake-eye.left{left:6px}.snake-eye.right{right:6px}.loader-segment.body:nth-child(n+20){width:22px;height:22px}.loader-segment.body:nth-child(n+30){width:20px;height:20px}.loader-segment.body.corner{width:22px;height:22px;border-radius:8px;background-color:#2c2c2c}.loader-segment.tail{width:16px;height:16px;border-radius:8px;z-index:1;background-color:#2c2c2c}.loader-segment.right{transform:rotate(0)}.loader-segment.right-down{transform:rotate(45deg)}.loader-segment.down{transform:rotate(90deg)}.loader-segment.down-left{transform:rotate(135deg)}.loader-segment.left{transform:rotate(180deg)}.loader-segment.left-up{transform:rotate(225deg)}.loader-segment.up{transform:rotate(270deg)}.loader-segment.up-right{transform:rotate(315deg)}@keyframes flicker{0%,to{opacity:1}50%{opacity:.5}}.loader-text{display:flex;justify-content:center;align-items:center;gap:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loader-text span{font-family:monospace;font-size:36px;font-weight:700;color:#1a1a1a;opacity:0;animation:fadeIn .4s forwards}.loader-text span:nth-child(1){animation-delay:0s}.loader-text span:nth-child(2){animation-delay:.2s}.loader-text span:nth-child(3){animation-delay:.4s}.loader-text span:nth-child(4){animation-delay:.6s}.loader-text span:nth-child(5){animation-delay:.8s}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;min-height:100vh;width:100%;overflow:hidden}body{background-image:url(/assets/nokia-9x3JbKP0.gif);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.navigation-hints{color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.card{padding:2em}.read-the-docs{color:#888}.app-content{opacity:1;transform:scale(1);transition:opacity .8s ease-in-out,transform .8s ease-in-out}.app-content.hidden{opacity:0;transform:scale(.95)}.fade-in{animation:fadeIn 1s ease-in-out forwards}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.loader-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;pointer-events:none}.loader-container *{pointer-events:none}.phone-wrapper{position:relative;z-index:1}.phone-wrapper.hidden{visibility:hidden}
