*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;font-family:Inter,sans-serif}body{background-color:var(--color-dark);font-family:Inter,sans-serif}:root{--color-white:#dfdfdf;--color-slate:#23233a;--color-navy:#050529;--color-dark:#181a21;--color-peach:#f9b17a}.container{background-color:var(--color-dark);height:100vh;display:flex}.main-content{background-color:var(--color-dark);flex:1;height:100vh;padding:3rem 2.5rem;overflow-y:auto}.main-content-inner{max-width:1500px}.section{margin-bottom:4rem}.about-content{display:block}.about-photo{object-fit:cover;float:left;border-radius:8px;width:360px;height:540px;margin-bottom:1rem;margin-right:1.5rem}.section-heading{color:var(--color-peach);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:2rem;font-weight:600}.section p{color:var(--color-white);font-size:1.1rem;line-height:1.8}.section p+p{margin-top:1rem}@media (width<=900px){.container{flex-direction:column;width:100%;height:auto}.main-content{width:100%;height:auto;overflow-y:unset;padding:2rem 1.5rem}}.sidebar{background-color:var(--color-navy);border-right:1px solid var(--color-slate);flex-direction:column;width:350px;height:100vh;display:flex;position:sticky;top:0}.sidebar-header{padding:2rem}.sidebar-name{color:var(--color-peach);font-size:2rem;font-weight:700}.sidebar-tagline{color:var(--color-white);opacity:.7;margin-top:.5rem}.desktop-nav{flex-direction:column;gap:1.25rem;margin-top:2rem;padding:0 2rem;display:flex}.nav-item{color:var(--color-white);opacity:.5;align-items:center;gap:1rem;text-decoration:none;transition:opacity .2s;display:flex}.nav-line{background-color:var(--color-white);width:2rem;height:1px;transition:width .3s,background-color .2s;display:block}.nav-label{letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:400;transition:font-weight .2s,color .2s}.nav-item:hover{opacity:1}.nav-item:hover .nav-line{width:4rem}.nav-item:hover .nav-label{font-weight:700}.nav-item.active{opacity:1}.nav-item.active .nav-line{background-color:var(--color-peach);width:4rem}.nav-item.active .nav-label{color:var(--color-peach);font-weight:700}.mobile-nav{display:none}.mobile-nav a{color:var(--color-white);border-radius:6px;padding:.5rem .75rem;font-size:.95rem;text-decoration:none;transition:background .2s,color .2s}.mobile-nav a:hover{background-color:var(--color-dark);color:var(--color-peach)}.mobile-nav a.active{color:var(--color-peach)}@media (width<=900px){.sidebar{border-right:none;width:100%;height:auto;position:static}.sidebar-header{padding:1.5rem 2rem}.desktop-nav{display:none}.mobile-nav{z-index:100;background-color:var(--color-dark);border-top:1px solid var(--color-slate);border-bottom:1px solid var(--color-slate);flex-flow:wrap;gap:.25rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}}.skills-container{flex-direction:column;gap:1rem;display:flex}.skills-category{background-color:var(--color-slate);border-radius:10px;padding:1.25rem 1.5rem}.skills-category-title{color:var(--color-peach);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:.75rem;font-weight:600}.skills-tags{flex-wrap:wrap;gap:.5rem;display:flex}.skill-tag{border:1px solid var(--color-white);color:var(--color-white);white-space:nowrap;background-color:#0000;border-radius:999px;padding:.3rem .85rem;font-size:.8rem}.job{border-radius:10px;gap:2rem;padding:1.25rem 1.5rem;transition:background .2s;display:flex}.job-date{color:var(--color-white);opacity:.5;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;min-width:120px;padding-top:.2rem;font-size:.75rem;font-weight:500}.job-title{color:var(--color-white);margin-bottom:.75rem;font-size:1rem;font-weight:600}.job-info{color:var(--color-white);opacity:.7;font-size:.9rem;line-height:1.7}.experience-container{flex-direction:column;gap:1.5rem;display:flex}.resume-link{color:var(--color-white);letter-spacing:.05em;justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;font-size:1.5rem;font-weight:600;text-decoration:none;transition:color .2s;display:flex}.resume-link:hover{border-color:var(--color-peach);color:var(--color-peach);transform:scale(1.08)}.resume-arrow{font-size:1rem;transition:transform .2s}.resume-link:hover .resume-arrow{transform:translate(2px,-2px)}.project-card{cursor:pointer;background-color:var(--color-navy);border:1px solid var(--color-slate);border-radius:10px;flex-direction:column;width:400px;min-height:600px;text-decoration:none;transition:border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--color-peach)}.project-image{object-fit:cover;width:100%;height:200px}.project-body{flex-direction:column;flex:1;gap:1rem;padding:1.5rem;display:flex}.project-title{color:var(--color-peach);font-size:1.1rem;font-weight:600}.project-description{color:var(--color-white);opacity:.8;font-size:.9rem;line-height:1.7}.project-tags{flex-wrap:wrap;gap:.5rem;margin-top:auto;display:flex}.project-tag{border:1px solid var(--color-white);color:var(--color-white);white-space:nowrap;background-color:#0000;border-radius:999px;padding:.3rem .85rem;font-size:.8rem}.projects-container{flex-wrap:wrap;gap:1.5rem;display:flex}.contact-intro{flex-direction:column;gap:1rem;max-width:700px;margin-bottom:2.5rem;display:flex}.contact-text{color:var(--color-white);opacity:.85;font-size:1rem;line-height:1.8}.contact-socials{justify-content:center;gap:1rem;margin-top:.5rem;display:flex}.social-button{border:1px solid var(--color-slate);color:var(--color-white);border-radius:6px;align-items:center;gap:.6rem;padding:.6rem 1.25rem;font-size:1.5rem;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s;display:flex}.social-button:hover{border-color:var(--color-peach);color:var(--color-peach);transform:scale(1.08)}.social-icon{filter:invert();width:18px;height:18px;transition:filter .2s}.social-button:hover .social-icon{filter:invert(78%)sepia(43%)saturate(500%)hue-rotate(330deg)brightness(105%)}.contact-form{flex-direction:column;gap:1.5rem;max-width:700px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-label{color:var(--color-white);text-transform:uppercase;letter-spacing:.08em;font-size:1rem;font-weight:600}.form-optional{color:var(--color-white);opacity:.4;text-transform:none;letter-spacing:0;font-weight:400}.form-input{background-color:var(--color-navy);border:1px solid var(--color-slate);color:var(--color-white);border-radius:6px;outline:none;padding:.65rem 1rem;font-size:.95rem;transition:border-color .2s}.form-input:focus{border-color:var(--color-peach)}.form-input::placeholder{color:var(--color-white);opacity:.3}.form-radio-group{flex-wrap:wrap;gap:1.5rem;display:flex}.form-radio{color:var(--color-white);cursor:pointer;opacity:.7;align-items:center;gap:.5rem;font-size:.95rem;transition:opacity .2s;display:flex}.form-radio:hover{opacity:1}.form-radio input[type=radio]{accent-color:var(--color-peach);cursor:pointer;width:16px;height:16px}.form-textarea{background-color:var(--color-navy);border:1px solid var(--color-slate);color:var(--color-white);resize:vertical;border-radius:6px;outline:none;padding:.65rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.form-textarea:focus{border-color:var(--color-peach)}.form-textarea::placeholder{color:var(--color-white);opacity:.3}.form-submit{border:1px solid var(--color-peach);color:var(--color-peach);cursor:pointer;background-color:#0000;border-radius:6px;align-self:flex-start;padding:.65rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background-color .2s,color .2s}.form-error{color:#f46565;margin-top:.25rem;font-size:1rem}.form-submit:hover{background-color:var(--color-peach);color:var(--color-dark)}.form-required{color:var(--color-peach);font-size:1.5rem}@media (width<=900px){.form-row{grid-template-columns:1fr}}.pp-page{background-color:var(--color-dark);max-width:1300px;min-height:100vh;padding:3rem 2.5rem}.pp-back{color:var(--color-white);opacity:.7;margin-bottom:2.5rem;font-size:.9rem;text-decoration:none;transition:opacity .2s,color .2s;display:inline-block}.pp-back:hover{opacity:1;color:var(--color-peach)}.pp-title{color:var(--color-peach);margin-bottom:3rem;font-size:2rem;font-weight:700}.pp-intro{border-left:3px solid var(--color-peach);background-color:var(--color-navy);border-radius:0 10px 10px 0;margin-bottom:2rem;padding:1.5rem}.pp-section{border-top:2px solid var(--color-slate);margin-bottom:1rem;overflow:hidden}.pp-section-header{cursor:pointer;background-color:#0000;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.pp-section-heading{color:var(--color-peach);text-transform:uppercase;letter-spacing:.09em;padding:0;font-size:1.4rem;font-weight:700}.pp-section-toggle{color:var(--color-peach);font-size:3rem}.pp-section-content{background-color:#0000;padding:0 0 0 3rem}.pp-text{color:var(--color-white);opacity:.85;margin-bottom:.75rem;font-size:1rem;line-height:1.8}.pp-subheading{color:var(--color-peach);letter-spacing:.05em;opacity:.9;margin-top:1.5rem;margin-bottom:.75rem;font-size:1rem;font-weight:600}.pp-subheading-nested{color:var(--color-peach);letter-spacing:.04em;opacity:.85;margin-top:1.25rem;margin-bottom:.5rem;padding-left:1.5rem;font-size:.9rem;font-weight:600}.pp-text-indented{color:var(--color-white);opacity:.85;margin-bottom:.75rem;padding-left:1.5rem;font-size:1rem;line-height:1.8}.pp-list{flex-direction:column;gap:.75rem;padding-left:1.25rem;display:flex}.pp-list li{color:var(--color-white);opacity:.85;font-size:.95rem;line-height:1.7;list-style:none;position:relative}.pp-list li:before{content:"•";color:var(--color-peach);position:absolute;left:-1.25rem}.pp-list-indented{flex-direction:column;gap:.4rem;margin-top:.5rem;margin-bottom:.75rem;padding-left:3rem;display:flex}.pp-list-indented li{color:var(--color-white);opacity:.85;font-size:.95rem;line-height:1.7;list-style:none;position:relative}.pp-list-indented li:before{content:"•";color:var(--color-peach);padding:0;position:absolute}.pp-list-label{color:var(--color-peach);padding:0 0 0 1rem;font-weight:600}.pp-image{border:1px solid var(--color-slate);border-radius:8px;width:50%;margin-top:1.5rem}.pp-design-row{justify-content:center;align-items:flex-start;gap:1.5rem;display:flex}.pp-thumb{border:1px solid var(--color-slate);cursor:pointer;border-radius:8px;flex-shrink:0;width:180px;height:auto;transition:border-color .2s,transform .2s}.pp-thumb:hover{border-color:var(--color-peach);transform:scale(1.03)}.pp-modal-overlay{z-index:1000;background-color:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pp-modal-content{max-width:90vw;max-height:90vh;position:relative}.pp-modal-close{color:var(--color-white);cursor:pointer;background:0 0;border:none;font-size:1.2rem;transition:color .2s;position:absolute;top:-2rem;right:0}.pp-modal-close:hover{color:var(--color-peach)}.pp-modal-image{object-fit:contain;border-radius:8px;width:100%;max-height:90vh}.kb-wireframe-thumb{border:1px solid var(--color-slate);cursor:pointer;border-radius:8px;flex-shrink:0;width:180px;height:auto;transition:border-color .2s,transform .2s}.kb-wireframe-thumb:hover{border-color:var(--color-peach);transform:scale(1.03)}.kb-github-link{color:var(--color-peach);margin-top:.75rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .2s,opacity .2s;display:inline-block}.kb-github-link:hover{opacity:.85;transform:scale(1.05)}.pp-inline-link{color:var(--color-peach);text-align:right;padding-right:3rem;font-weight:600;text-decoration:none;transition:transform .2s,opacity .2s;display:block}.pp-inline-link:hover{opacity:.8;transform:scale(1.05)}.info-card{background-color:var(--color-slate);border-radius:10px;margin-bottom:1rem;padding:1.5rem}.pp-challenge-label{color:var(--color-peach);font-weight:700}.kb-github-link,.xg-link{color:var(--color-peach);margin-top:.75rem;padding-left:2rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .2s,opacity .2s;display:block}.xg-link:hover{opacity:.85;transform:scale(1.05)}.nsl-container{align-items:flex-start;gap:1.5rem;margin-top:1.5rem;display:flex}.nsl-left-box{border:1px solid var(--color-peach);border-radius:8px;flex-shrink:0;width:300px;padding:1rem}.nsl-right-box{flex-direction:column;flex:1;gap:1.5rem;display:flex}.nsl-top-right-box,.nsl-bottom-right-box{border:1px solid var(--color-peach);border-radius:8px;padding:1rem}.nsl-table-title{color:var(--color-peach);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.nsl-table{border-collapse:collapse;width:100%;font-size:.9rem}.nsl-table td{color:var(--color-white);opacity:.85;border-bottom:1px solid #ffffff0d;padding:.3rem .5rem}.nsl-table td:last-child{text-align:right}.nsl-category-row td{color:var(--color-peach);opacity:1;padding-top:3.4rem;font-size:.95rem;font-weight:700}.nsl-subcategory{font-style:italic;opacity:.7!important;padding-left:1rem!important}.nsl-chart{flex-direction:column;gap:1rem;margin-top:.75rem;display:flex}.nsl-bar-row{align-items:center;gap:.75rem;display:flex}.nsl-bar-label{color:var(--color-white);flex-shrink:0;width:60px;font-size:.85rem;font-weight:600}.nsl-bar-track{background-color:#ffffff14;border-radius:4px;flex:1;height:20px;overflow:hidden}.nsl-bar-fill{border-radius:4px;height:100%;transition:width .6s}.nsl-bar-count{color:var(--color-white);opacity:.7;text-align:right;min-width:55px;font-size:.8rem}.nsl-features-grid{grid-template-columns:3fr 2fr;gap:.5rem;display:grid}.nsl-feature-name{color:var(--color-peach);white-space:nowrap;padding-right:.5rem;font-size:.85rem;font-weight:600}.nsl-feature-values{color:var(--color-white);opacity:.7;word-break:break-word;font-size:.8rem}
