@import"https://fonts.googleapis.com/css2?family=VT323&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap";/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}}*{box-sizing:border-box;margin:0;padding:0;font-family:sans-serif}body{color:#e5e7eb;background-color:#040417;overflow-x:hidden}.app-container{width:100%;min-height:100vh;color:inherit;background-color:#010110;border-left:2px solid #6b728059;border-right:2px solid #6b728059;margin:0 auto}.knightGame-container{grid-template-columns:minmax(0,1.55fr) minmax(0,.45fr);align-items:stretch;gap:1.2rem;max-width:1200px;margin:0 auto;padding:6vh 1.5rem;display:grid}.knightGame-container video{background:#0f172a99;border:1px solid #94a3b84d;border-radius:14px;width:100%;box-shadow:0 18px 36px -26px #0f172ae6}.knightGame-container p{color:#e5e7eb;line-height:1.6}.knightGame-content{flex-direction:column;align-items:flex-start;gap:.35rem;height:100%;display:flex}.knightGame-gif{background:#0a0c1899;width:min(340px,100%);box-shadow:0 10px 26px -18px #0f172acc}.download-button{color:inherit;background:linear-gradient(135deg,#0a142ae6,#221734d9);border:1px solid #94a3b859;border-radius:999px;justify-content:center;align-items:center;margin-top:auto;padding:.85rem 1.5rem;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex;box-shadow:0 12px 26px -18px #5eead466}.knightGame-description{text-shadow:0 0 8px #ffffff80;font-size:large}.download-button:hover{filter:brightness(1.2);transform:translateY(-2px);box-shadow:0 16px 30px -20px #5eead48c}@media (max-width:820px){.knightGame-container{grid-template-columns:1fr}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}.navbar{width:100%;display:flex;align-items:center;justify-content:space-between;background-color:#010105;color:#cbd5f5;padding:0;border:1px solid rgba(107,114,128,.4);position:sticky;top:0;z-index:10;transform:translateY(0);transition:transform .35s ease,opacity .25s ease;will-change:transform}.navbar--hidden{transform:translateY(-110%);opacity:0}.navbar_logo{display:flex;align-items:center;padding-right:2vw;padding-left:2vw;margin-right:2vw;border-right:1px solid rgba(107,114,128,.4);position:relative}.Logo{cursor:pointer;width:80px;display:block;transition:color .2s ease,transform .2s ease,text-shadow .2s ease;filter:brightness(1.8)}.Logo:hover{filter:brightness(2) drop-shadow(0 0 14px rgba(210,218,235,.85));transform:scale(1.2)}.navbar_menu{flex:1;list-style:none;text-align:center;color:inherit;display:flex;margin:0 2.5rem 0 1rem;padding:0;align-items:center}.navbar_item--left{margin-right:auto}.navbar_menu a{color:inherit;text-decoration:none;display:inline-block;padding:.75rem 1rem}.navbar_menu li{font-size:20px;cursor:pointer;color:inherit;transition:color .2s ease,transform .2s ease,text-shadow .2s ease;text-shadow:0 0 18px rgba(255,255,255,.7)}.navbar_menu li:hover{color:#f8fafc;text-shadow:0 0 10px rgba(255,255,255,.55);transform:scale(1.2)}.navbar_icons{list-style:none;text-align:left;margin:0 2.5rem 0 auto;padding:0}.navbar_icons li{display:inline-block;margin:10px 20px;font-size:20px;cursor:pointer;color:inherit;transition:color .2s ease,transform .2s ease,text-shadow .2s ease;text-shadow:0 0 18px rgba(255,255,255,.7)}.navbar_icons li:hover{color:#f8fafc;text-shadow:0 0 10px rgba(255,255,255,.55);transform:scale(1.3)}.home{position:relative;display:flex;justify-content:center;min-height:100vh;width:100%;overflow:hidden;color:inherit}.home-scene{position:relative;width:100%;height:100vh;margin:0 auto;overflow:hidden}.home-scene img{position:absolute;display:block;pointer-events:none}.home-bg-sky{inset:0;width:100%;height:100%;object-fit:cover;z-index:0;animation:sky-pan 150s linear infinite;background-position:0 0}.home-bg-sky-dup{inset:0;width:100%;height:100%;object-fit:cover;z-index:0;animation:sky-pan-right 150s linear infinite;background-position:0 0;transform:translate(100%)}@keyframes sky-pan{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@keyframes sky-pan-right{0%{transform:translate3d(99%,0,0)}to{transform:translate3d(50%,0,0)}}.home-bg-moon{width:100%;height:auto;transform:scale(1.2) translate(20%,-10%);transform-origin:center;filter:brightness(1.35) drop-shadow(0 0 45px rgba(191,211,241,.85));z-index:1}.home-bg-building-far,.home-bg-building-mid,.home-bg-building-back,.home-bg-building-close{bottom:0;object-fit:contain}.home-bg-building-back{width:135%;z-index:2;transform:translateY(-30%) scale(1.3);opacity:.9}.home-bg-building-mid{width:125%;z-index:3;filter:brightness(1.7) drop-shadow(0 18px 45px rgba(0,0,0,.55));transform:translateY(-20%)}.home-bg-building-far{width:100%;z-index:4;transform:translateY(-25%);opacity:.95}.home-bg-building-close{width:100%;z-index:5;filter:brightness(1.7) drop-shadow(0 18px 45px rgba(0,0,0,.55))}.home-tile{bottom:0;width:100%;height:auto;z-index:6}.npc-bubble{position:absolute;top:50%;left:50%;transform:translate(-50%,-10%);background:transparent;border:2px solid #4f46e5;border-radius:14px;display:grid;place-items:center;color:#e5e7eb;font-size:.95rem;line-height:1.3;box-shadow:0 10px 28px #00000059;pointer-events:auto;z-index:8;font-family:VT323,monospace;font-size:x-large;white-space:pre-line;text-align:center;padding:2rem}.npc-bubble:after{display:none}.socials{position:absolute;top:55%;left:50%;transform:translate(-50%,40%);z-index:8;display:flex;align-items:center;gap:2rem;padding:1.6rem 2rem;box-shadow:none;min-width:16rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease,visibility .22s ease}.socials.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,40%) scale(1)}.socials img{position:static;display:block;flex-shrink:0;width:2rem;height:2rem;object-fit:contain;filter:drop-shadow(0 0 12px rgba(255,255,255,.35));transition:transform .15s ease,filter .3s ease;animation:social-glow 2.4s ease-in-out infinite;pointer-events:auto}.socials img:hover{transform:scale(1.2);filter:brightness(4) drop-shadow(0 0 5px rgba(210,218,235,.4))}@keyframes social-glow{0%,to{filter:drop-shadow(0 0 12px rgba(255,255,255,.35))}50%{filter:drop-shadow(0 0 22px rgba(255,255,255,.65))}}.chatbot{position:absolute;bottom:clamp(2rem,4vw,4.75rem);left:50%;transform:translate(-50%,-35%);width:clamp(90px,9vw,180px);z-index:7;pointer-events:auto!important;image-rendering:pixelated;filter:drop-shadow(0 0 12px rgba(255,255,255,.35));animation:chatbot-pulse 2.4s ease-in-out infinite;transition:transform .18s ease,filter .18s ease}@media (max-width: 640px){.chatbot{bottom:clamp(0px,0vw,4.75rem)}}@keyframes chatbot-pulse{0%,to{filter:drop-shadow(0 0 12px rgba(255,255,255,.35))}50%{filter:drop-shadow(0 0 22px rgba(255,255,255,.65))}}.chatbot-btn{background:none;border:none;padding:0}.chatbot:hover{cursor:pointer;transform:translate(-50%,-55%) scale(1.4);filter:drop-shadow(0 0 24px rgba(191,219,254,.9))}.contact{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:clamp(2.5rem,6vw,4rem) 1rem 3rem;gap:2rem;background-color:#040a1ad9;position:relative}.contact:before{content:"";position:absolute;top:5%;left:50%;transform:translate(-50%,-50%);width:min(760px,90%);height:2px;background:linear-gradient(90deg,transparent 0%,rgba(148,163,184,.1) 18%,rgba(255,255,255,.65) 50%,rgba(148,163,184,.1) 82%,transparent 100%);box-shadow:0 0 18px #ffffff40}.contact h1{font-size:clamp(2.5rem,1vw,3.5rem);letter-spacing:1px;text-transform:uppercase;text-shadow:0 0 10px rgba(255,255,255,.55)}.contact-form{display:flex;flex-direction:column;width:min(480px,100%);gap:1.2rem}.contact-form input,.contact-form textarea{padding:.85rem 1rem;border-radius:10px;border:1px solid rgba(148,163,184,.4);background:#0c072f59;color:inherit}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid rgba(96,165,250,.6);background:#ffffff12}.contact-button{padding:.9rem;border-radius:10px;border:none;background:#0d4092;color:#ffffffe6;font-weight:600;transition:transform .2s ease,box-shadow .2s ease;text-shadow:0 0 5px rgba(255,255,255,.55)}.contact-button:hover{cursor:pointer;transform:translateY(-10px);box-shadow:0 12px 25px -12px #3b82f68c}.contact-alternatives{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;width:min(620px,100%)}.alternative-email,.alternative-linkedin{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.9rem 1rem;text-align:center;display:grid;gap:.4rem;box-shadow:0 12px 26px #00000040}.contact-icon{width:36px;height:36px;object-fit:contain;margin:0 auto .3rem;filter:drop-shadow(0 0 10px rgba(255,255,255,.35))}.contact-link{color:#9be8ff;text-decoration:none;word-break:break-all;font-weight:600;text-shadow:0 0 10px rgba(155,232,255,.45);position:relative;display:inline-flex;align-items:center;gap:.35rem;align-self:center;justify-content:center;margin:0 auto;text-align:center;transition:color .15s ease,text-shadow .15s ease,transform .15s ease}.contact-link:after{content:">";font-weight:700;opacity:0;transform:translateY(2px);transition:opacity .15s ease,transform .15s ease}.contact-link:hover{color:#c9ffff;text-shadow:0 0 18px rgba(155,232,255,.75);transform:translateY(-1px)}.contact-link:hover:after{opacity:1;transform:translate(2px,-1px)}.snackbar{position:fixed;left:50%;bottom:1.4rem;transform:translate(-50%);padding:.85rem 1.1rem;border-radius:12px;font-weight:600;text-align:center;border:1px solid rgba(255,255,255,.18);background:#0c1424e6;box-shadow:0 12px 30px -18px #0000008c;z-index:20;animation:snackbar-pop .18s ease,snackbar-fade .3s ease 2.9s forwards}.snackbar.success{color:#a7f3d0;text-shadow:0 0 10px rgba(49,196,141,.6)}.snackbar.error{color:#fecaca;text-shadow:0 0 10px rgba(248,113,113,.5)}@keyframes snackbar-pop{0%{transform:translate(-50%,8px);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes snackbar-fade{to{opacity:0;transform:translate(-50%,10px)}}.performance{padding:3rem 1rem;background:#040a1ad9;color:inherit;position:relative}.performance:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(760px,90%);height:2px;background:linear-gradient(90deg,transparent 0%,rgba(148,163,184,.1) 18%,rgba(255,255,255,.65) 50%,rgba(148,163,184,.1) 82%,transparent 100%);box-shadow:0 0 18px #ffffff40}.performance h1{text-align:center;margin-bottom:2rem;font-size:clamp(2rem,4vw,2.75rem);text-shadow:0 0 10px rgba(255,255,255,.55)}.performance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin:0 5rem;justify-items:center}.performance-card{display:flex;flex-direction:column;gap:.85rem;background:#180e2a3b;border:1px solid rgba(148,163,184,.25);border-radius:16px;padding:2rem 1rem;box-shadow:0 20px 30px -25px #77787abf;text-align:center;width:100%;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.performance-card h3{margin-bottom:.25rem;font-size:1.4rem}.performance-thumbnail{width:80%;border-radius:10px;object-fit:cover;align-self:center}.performance-date{font-size:.95rem;letter-spacing:.05rem;opacity:.7;margin-bottom:1rem}.performance-card:hover{cursor:pointer;transform:translateY(-6px);border-color:#ffffff59;box-shadow:0 22px 42px -28px #5eead459}.about-container{width:100%;position:relative;margin-top:2rem;padding:clamp(3rem,6vw,6rem) clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;gap:1.75rem;font-family:Inter,system-ui,sans-serif;background-color:#040a1ad9}.about-container p{margin:0 auto}.about-container h1{font-size:clamp(2rem,4vw,2.8rem);letter-spacing:.02em;color:#f8fafc;align-self:center;text-shadow:0 0 5px rgba(255,255,255,.75)}.about-container h2{font-size:clamp(1.4rem,2.5vw,1.8rem);color:#e2e8f0;margin-top:.5rem;align-self:center;text-shadow:0 0 5px rgba(255,255,255,.6)}.about-container h3{font-size:1.05rem;color:#cbd5e1;margin-bottom:.4rem;text-shadow:0 0 5px rgba(255,255,255,.55);font-size:18px}.about-container p{color:#cbd5e1;line-height:1.7;max-width:60ch;text-shadow:0 0 6px rgba(255,255,255,.6);font-size:18px}.paragraph-container{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:1.75rem 2rem;background:#ffffff05;box-shadow:0 20px 30px -25px #77787abf;max-width:68ch;margin:0 auto}.stack-container{margin:1rem auto 0;max-width:960px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.language-container,.framework-container,.devtools-container{display:grid;grid-template-columns:repeat(3,minmax(48px,1fr));align-items:center;gap:.9rem;margin-top:.65rem;padding:auto;overflow:visible}.language-container img,.framework-container img,.devtools-container img{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(255,255,255,.25));transition:transform .15s ease,filter .15s ease;position:relative;display:inline-flex;justify-content:center;align-items:center}.language-container img:hover,.framework-container img:hover,.devtools-container img:hover{transform:translateY(-4px);filter:drop-shadow(0 0 14px rgba(255,255,255,.4))}.tech-icon:after{content:attr(title);position:absolute;bottom:-1.9rem;left:50%;transform:translate(-50%);padding:.25rem .55rem;border-radius:6px;background:#0f172aeb;color:#e5e7eb;font-size:.75rem;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 4px 12px #00000059;transition:opacity .15s ease,transform .15s ease;z-index:2}.tech-icon:hover:after{opacity:1;transform:translate(-50%,-6px)}.stack-container>div{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1rem 1.2rem;box-shadow:0 14px 36px #00000040;max-width:220px;width:100%;justify-self:center}.project-container{padding:clamp(3rem,6vw,5rem) 1.5rem;background:#040a1ad9;color:inherit;position:relative}.project-container:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:min(760px,90%);height:2px;background:linear-gradient(90deg,transparent 0%,rgba(148,163,184,.1) 18%,rgba(255,255,255,.65) 50%,rgba(148,163,184,.1) 82%,transparent 100%);box-shadow:0 0 18px #ffffff40}.project-container h1{text-align:center;font-size:clamp(2rem,4vw,2.8rem);text-shadow:0 0 10px rgba(255,255,255,.55);margin-bottom:2rem}.project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;margin:0 auto;max-width:900px}.project-card{display:flex;flex-direction:row;gap:1.5rem;background:#180e2a59;border:1px solid rgba(148,163,184,.25);border-radius:16px;padding:1.5rem;text-decoration:none;color:inherit;box-shadow:0 16px 30px -22px #0f172acc;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;max-width:860px;margin:0 auto}.left-column{flex:0 0 48%}.right-column{flex:1;display:flex;flex-direction:column;gap:.6rem}.project-thumbnail{display:block}.project-thumbnail img,.left-column img{width:100%;border-radius:12px;object-fit:cover;transition:transform .2s ease;height:350px}.project-card h2{font-size:1.35rem;text-align:left;text-shadow:0 0 8px rgba(255,255,255,.6)}.project-topic,.project-skills,.project-description{text-shadow:0 0 8px rgba(255,255,255,.5)}.project-topic{display:inline-flex;align-items:center;align-self:flex-start;padding:.2rem .6rem;border-radius:999px;background:#6c6b732e;border:1px solid rgba(7,13,22,.4);color:#e2e8f0}.project-card:hover{border-color:#ffffff59;box-shadow:0 22px 42px -28px #5eead459;background-color:#0a142ad9}.project-thumbnail:hover img{transform:scale(1.1);filter:brightness(1) drop-shadow(0 0 10px rgba(210,218,235,.4))}.project-github-icon{width:28px;height:28px;margin-top:.35rem;transition:transform .2s ease}.project-github-link{margin-top:auto;align-self:flex-start;display:inline-flex}.project-github-icon:hover{transform:scale(1.2);filter:brightness(1) drop-shadow(0 0 10px rgba(210,218,235,.4))}@media (max-width: 780px){.project-card{flex-direction:column}.left-column{flex-basis:auto}}.project-back{display:inline-flex;align-items:center;justify-content:center;margin:2rem auto 0;padding:.75rem 1.5rem;border-radius:999px;border:1px solid rgba(148,163,184,.35);color:inherit;text-decoration:none;background:#0f172a80;transition:transform .2s ease,box-shadow .2s ease}.project-back:hover{transform:translateY(-2px);box-shadow:0 10px 22px -14px #94a3b873}
