*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;background:#000;font-family:system-ui,sans-serif}#simulation{position:fixed;top:0;left:0;width:100vw;height:100vh;transition:opacity .3s ease}.controls{position:fixed;bottom:24px;left:60px;display:flex;flex-direction:column;gap:16px;z-index:10}.slider-group{display:flex;flex-direction:column;align-items:center;gap:4px}.slider-title{color:#fff9;font-size:12px;font-weight:500}.slider-row{display:flex;align-items:center;gap:8px}.slider-label{color:#ffffffb3;font-size:10px;min-width:28px;text-align:center}.slider-value{color:#fffc;font-size:11px;font-variant-numeric:tabular-nums}.controls input[type=range]{width:100px;accent-color:#ffffff;cursor:pointer}.controls.hidden{display:none}.controls-toggle{position:fixed;bottom:24px;left:24px;width:28px;height:28px;background:#fff3;border:1px solid rgba(255,255,255,.7);border-radius:4px;color:#ffffffb3;font-size:14px;cursor:pointer;z-index:11;transition:background .15s}.controls-toggle:hover{background:#ffffff4d}.sim-toggle{position:fixed;bottom:60px;left:24px;width:28px;height:28px;background:#fff3;border:1px solid rgba(255,255,255,.7);border-radius:4px;color:#ffffffb3;font-size:14px;cursor:pointer;z-index:11;transition:background .15s}.sim-toggle:hover{background:#ffffff4d}#simulation.hidden{opacity:0;pointer-events:none}@media (max-width: 640px){body{overflow:auto}#simulation{position:fixed;top:0;left:0;height:100vh;width:100vw;transition:opacity .3s ease}#simulation.faded{opacity:0;pointer-events:none}.controls,.controls-toggle,.sim-toggle{display:none}}.portfolio{position:fixed;top:0;left:55%;right:0;height:100vh;z-index:10;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;transition:left .3s ease;display:flex;justify-content:center}.portfolio.centered{left:0}.portfolio::-webkit-scrollbar{width:6px}.portfolio::-webkit-scrollbar-track{background:transparent}.portfolio::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.portfolio-inner{padding:0 24px 10vh;min-height:200vh;width:100%;max-width:700px}.portfolio-header{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative}.portfolio-name{color:#fff;font-family:Trebuchet MS,sans-serif;font-size:3.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.portfolio-blurb{color:#ffffff80;font-family:Trebuchet MS,sans-serif;font-size:1.1rem;font-weight:400}.scroll-hint{position:absolute;bottom:3rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#ffffffb3;font-family:Trebuchet MS,sans-serif;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;transition:opacity .3s}.scroll-arrow{font-size:1.2rem;animation:bounce 2s infinite}.scroll-hint.hidden{opacity:0}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(6px)}60%{transform:translateY(3px)}}.portfolio-sections{opacity:0;transform:translateY(30px);transition:opacity .5s ease,transform .5s ease;padding-bottom:4rem}.portfolio-sections.revealed{opacity:1;transform:translateY(0)}.portfolio-section{margin-bottom:2rem}.section-title{color:#fff6;font-family:Trebuchet MS,sans-serif;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:color .15s;-webkit-user-select:none;user-select:none}.section-title:hover{color:#ffffffb3}.section-toggle{font-size:1rem;font-weight:400;width:1rem;text-align:center}.section-content{overflow:hidden;max-height:2000px;opacity:1;transition:max-height .4s ease,opacity .3s ease,margin .3s ease}.portfolio-section.collapsed .section-content{max-height:0;opacity:0;margin-bottom:0}.experience{margin-bottom:1.5rem;padding:1rem;border-radius:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);transition:background .2s,border-color .2s}.experience:hover{background:#ffffff0a;border-color:#ffffff14}.experience-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.experience-logo{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0}.experience-info{display:flex;flex-direction:column;gap:.15rem}.experience-title{color:#fff;font-family:Trebuchet MS,sans-serif;font-size:1rem;font-weight:600}.experience-company{color:#fff9;font-size:.85rem}.experience-date{color:#fff6;font-size:.75rem}.experience-desc{color:#ffffff80;font-size:.85rem;line-height:1.5}.project{margin-bottom:2rem;padding:1.25rem;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);transition:background .2s,border-color .2s}.project:hover{background:#ffffff0f;border-color:#ffffff1a}.project-title{color:#fff;font-family:Trebuchet MS,sans-serif;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.project-desc{color:#fff9;font-size:.9rem;line-height:1.5;margin-bottom:.75rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{color:#ffffff80;font-size:.7rem;padding:.25rem .5rem;background:#ffffff14;border-radius:4px}.project-image{width:100%;height:auto;border-radius:6px;margin-top:1rem;opacity:.9;transition:opacity .2s}.project:hover .project-image{opacity:1}.about-text{color:#fff9;font-size:.95rem;line-height:1.7}.links{display:flex;gap:1.5rem}.link{color:#fff9;font-size:.9rem;text-decoration:none;transition:color .15s}.link:hover{color:#fff}.about-text a{color:#ffffffb3;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.about-text a:hover{color:#fff}.project-title a{color:#fff;text-decoration:underline;text-underline-offset:2px;transition:color .15s}.project-title a:hover{color:#fff}@media (max-width: 640px){.portfolio{position:relative;left:0;right:0;width:100%;height:auto;margin-top:50vh;background:transparent;display:block}.portfolio-header{height:50vh;background:transparent}.portfolio-inner{min-height:auto;padding:0 5% 5vh;max-width:100%}.portfolio-name{font-size:2.5rem}.portfolio-blurb{font-size:1rem}.portfolio-sections{background:#000}}
