.collapse-btn[collapsed=true]+.collapse-body{opacity:0;font-size:0;transition:opacity .4s,font-size .3s .4s}.collapse-btn[collapsed=true]+.collapse-body p{padding:0!important;transition:padding .3s .3s}.collapse-btn[collapsed=false]+.collapse-body{font-size:inherit;opacity:1;transition:opacity .3s .3s,font-size .3s}.collapse-btn[collapsed=false]+.collapse-body p{transition:padding .3s}nav{position:fixed;top:0;left:0;background-color:#faebd7;width:0px;z-index:5}.menu-btn{position:fixed;padding:20px;top:0;left:0;right:0;display:flex;gap:0px;transition:all .7s;z-index:1;justify-content:space-between;pointer-events:none}nav .btn{opacity:0;pointer-events:none;padding:8px 16px;fill:#f6d4b1}.menu-btn>.btn:first-child{padding:8px 24px;margin-right:16px}nav svg{transition:all .2s}html[data-scroll=true] nav .btn{opacity:1;pointer-events:all}.active .btn{box-shadow:6px 6px #f6d4b1b3;background-color:#f6d4b1;color:var(--color);fill:var(--color);border-color:var(--color);opacity:1!important;pointer-events:all!important}.active .btn:hover{box-shadow:8px 8px 6px #f6d4b180}.active .btn:active{box-shadow:4px 4px #f6d4b1b3}.menu-body{background-color:var(--color);color:#f6d4b1;font-size:2em;font-family:public-pixel,monospace;text-decoration:none!important;position:fixed;top:0;bottom:0;left:-100px;right:100vw;z-index:0;transition:all .7s;display:inline-flex;gap:16px;flex-direction:column;padding-top:70px;padding-left:20px;overflow:hidden;box-sizing:border-box;opacity:0}.menu-body a{text-decoration:none!important}.menu-body a:hover{transform:none}.active .menu-body{left:0;right:0;opacity:1}#tip-scroll{position:fixed;bottom:16px;left:50%;transform:translate(-50%);font-family:chill,sans-serif;font-size:14px;box-shadow:6px 6px #000000bf;background-color:var(--color);color:#f6d4b1;transition:all .3s;padding:4px 24px;border:#f6d4b1 solid 1px;pointer-events:none;display:none;opacity:1}html[data-scroll=true] #tip-scroll{opacity:0}.active #tip-scroll{opacity:0!important}@media (min-width: 540px){.menu-btn{justify-content:left}.active .menu-btn{translate:28px}.menu-body{padding-left:50px}}@media (orientation: portrait){#tip-scroll{display:block}}@media (max-height: 700px){.menu-body{font-size:1.5em;gap:12px}}:root{--card-height: 460px;--card-top-offset: 20px}#cards{list-style:none;padding:0;display:block;width:90%;max-width:900px;margin:0 auto}.card{position:sticky;margin-bottom:36px}#card-1{top:15vh;z-index:1}#card-2{top:calc(15vh + var(--card-top-offset));z-index:2}#card-3{top:calc(15vh + var(--card-top-offset) * 2);z-index:3}#card-4{top:calc(15vh + var(--card-top-offset) * 3);z-index:4}#card-5{top:calc(15vh + var(--card-top-offset) * 4);z-index:5}#card-6{top:calc(15vh + var(--card-top-offset) * 5);z-index:6}.card-content{box-shadow:4px 4px #0000004d,8px 8px #00000026;background:#525252;color:#f6d4b1;border-radius:24px;overflow:hidden;display:flex;flex-direction:row;height:var(--card-height);border:4px solid currentColor;box-sizing:border-box;transform-origin:50% 0%;will-change:transform}#card-1 .card-content{background:#3b2b25;border-color:#3b2b25}#card-2 .card-content{background:#466d76;border-color:#466d76}#card-3 .card-content{background:#e68a7c;border-color:#e68a7c}#card-4 .card-content{background:#8a6f3e;border-color:#8a6f3e}#card-5 .card-content{background:#55663f;border-color:#55663f}#card-6 .card-content{background:#8c4a52;border-color:#8c4a52}.card-content .left{flex:1.1;padding:28px 32px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;box-sizing:border-box;gap:0;text-align:left}.card-content .right{flex:.9;padding:20px;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;box-sizing:border-box;background:transparent;overflow:hidden;max-height:100%}.card-content .right .image-container{flex:1 1 0;background:#fffaf2;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:0;max-height:calc(100% - 66px)}.card-content img,.card-content video{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;cursor:pointer}.card-content .right .image-container.logo{background:#14101a;padding:16px;box-sizing:border-box}.card-content .right .image-container.logo img{object-fit:contain;object-position:center}.card h2{font-family:public-pixel,monospace;font-size:1.25rem;margin:0 0 10px;background:none;color:#fffaf2;text-shadow:2px 2px 0px #000;padding:0;text-align:left;line-height:1.25}.card .card-year{font-family:public-pixel,monospace;font-size:.55rem;color:#fffaf2;opacity:.75;margin-bottom:12px;letter-spacing:.05em}.tech-stack{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tech-pill{background:#fffaf2;color:#3b2b25;padding:6px 12px;border-radius:99px;font-family:public-pixel,monospace;font-size:.55rem;font-weight:700;text-transform:uppercase;box-shadow:2px 2px #0003}.card p{font-family:public-pixel,monospace;font-size:.62rem;line-height:1.75;color:#fffaf2;opacity:.95;margin:0 0 auto;padding:0;width:100%}.skills-acquired{margin-top:auto;padding-top:12px}.skills-label{display:block;font-family:public-pixel,monospace;font-size:.6rem;color:#fffaf2;opacity:.8;margin-bottom:4px}.skills-list{display:block;font-family:public-pixel,monospace;font-size:.6rem;color:#fffaf2;line-height:1.5}.card-content .right .project-links{display:flex;gap:8px;margin-top:16px;flex-shrink:0}.card-content .right .project-link{display:block;flex:1;padding:14px 12px;background:#fffaf2;color:#3b2b25;text-decoration:none;font-family:public-pixel,monospace;font-size:.62rem;border-radius:99px;cursor:pointer;border:none;box-shadow:3px 3px #0000004d;transition:transform .1s ease,box-shadow .1s ease;text-align:center;box-sizing:border-box}.project-link:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #0006}.project-link:active{transform:translate(0);box-shadow:2px 2px #0006}@media (max-width: 900px){:root{--card-height: auto}.card-content{flex-direction:column;height:auto;min-height:auto}.card-content .right{width:100%;padding:16px;order:-1}.card-content .right .image-container{flex:0 0 200px;height:200px;max-height:none}.card-content .left{padding:0 20px 20px}.card h2{font-size:1.05rem}.card p{font-size:.58rem}}.see-all-projects{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:60px;margin-bottom:40px}.see-all-btn{display:inline-block;padding:16px 48px;background:#3b2b25;color:#f6d4b1;text-decoration:none;font-family:public-pixel,monospace;font-size:.9rem;border-radius:12px;cursor:pointer;border:none;box-shadow:4px 4px #0006;transition:transform .15s ease,box-shadow .15s ease}.see-all-btn:hover{transform:translate(-3px,-3px) scale(1.02);box-shadow:7px 7px #00000080}.see-all-btn:active{transform:translate(0);box-shadow:2px 2px #0006}.achievements-wrapper{display:flex;flex-wrap:nowrap;justify-content:center;align-items:flex-start;gap:clamp(20px,4vw,60px);padding:40px 20px;max-width:1200px;margin:0 auto;box-sizing:border-box}.achievement-item{display:flex;flex-direction:column;align-items:center;text-align:center;background:transparent}.achievement-side{flex:0 1 250px;max-width:250px;min-width:0}.achievement-center{flex:0 1 380px;max-width:380px;min-width:0}.achievement-image{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:12px;overflow:hidden}.achievement-side .achievement-image{width:100%;max-width:220px;height:150px}.achievement-center .achievement-image{width:100%;max-width:350px;height:230px}.achievement-image svg{width:100%;height:100%;display:block}.achievement-title{display:inline-block;max-width:100%;box-sizing:border-box;color:#f6d4b1;background-color:#3b2b25;font-family:public-pixel,monospace;font-size:.72rem;line-height:1.5;padding:10px 16px;margin:0 0 10px;border-radius:8px;box-shadow:3px 3px #0003}.achievement-center .achievement-title{font-size:1rem;padding:12px 28px}.achievement-subtitle{color:#3b2b25;font-family:chill,sans-serif;font-size:.95rem;line-height:1.4}@media (max-width: 900px){.achievements-wrapper{flex-direction:column;align-items:center;gap:50px}.achievement-center{order:1!important}.achievement-item:nth-child(3){order:2!important}.achievement-item:nth-child(1){order:3!important}.achievement-side,.achievement-center{flex:0 0 auto;max-width:90%;width:100%}.achievement-side .achievement-image,.achievement-center .achievement-image{width:100%;max-width:320px;height:auto}.achievement-side .achievement-image{height:180px}.achievement-center .achievement-image{height:230px}}.certifications-wrapper{display:flex;flex-wrap:wrap;gap:32px;justify-content:center;padding:20px;align-items:stretch;max-width:1000px;margin:0 auto}.certification-badge{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;width:200px;padding:20px 16px;box-sizing:border-box;text-decoration:none;color:#3b2b25;border:dashed 2px #3b2b25;border-radius:12px;background:#fffaf259;box-shadow:1px 1px #f6d4b1,5px 5px 0 var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.certification-badge:hover{transform:translate(-3px,-3px)!important;box-shadow:1px 1px #f6d4b1,8px 8px 0 var(--shadow)!important}.certification-badge:active{transform:translate(0)!important;box-shadow:1px 1px #f6d4b1,3px 3px 0 var(--shadow)!important}.certification-badge svg{width:72px;height:72px;display:block}.cert-name{font-family:public-pixel,monospace;font-size:.62rem;line-height:1.6;text-align:center}.cert-issuer{font-family:chill,sans-serif;font-size:.85rem;opacity:.75;text-align:center}.edu-list{display:flex;flex-direction:column;gap:20px;width:clamp(0px,95vw,820px);margin:0 auto;padding:8px 16px 0;box-sizing:border-box}.edu-item{display:grid;grid-template-columns:56px 1fr auto;gap:18px;align-items:start;padding:22px 24px;box-sizing:border-box;text-align:left;border:dashed 2px #3b2b25;border-radius:12px;background:#fffaf259;box-shadow:1px 1px #f6d4b1,6px 6px 0 var(--shadow)}.edu-item.is-secondary{padding:16px 20px;grid-template-columns:40px 1fr auto;gap:14px}.edu-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#3b2b25;border-radius:10px;box-shadow:3px 3px #0003}.is-secondary .edu-icon{width:40px;height:40px;border-radius:8px}.edu-icon svg{width:32px;height:32px;display:block;color:#f6d4b1}.is-secondary .edu-icon svg{width:22px;height:22px}.edu-school{display:block;font-family:public-pixel,monospace;font-size:.8rem;line-height:1.5;color:#3b2b25;margin-bottom:8px}.is-secondary .edu-school{font-size:.66rem;margin-bottom:5px}.edu-degree{display:block;font-family:chill,sans-serif;font-size:.98rem;color:#3b2b25;margin-bottom:4px}.is-secondary .edu-degree{font-size:.88rem}.edu-meta{display:block;font-family:chill,sans-serif;font-size:.85rem;color:#3b2b25;opacity:.72}.edu-score{font-family:public-pixel,monospace;font-size:.72rem;white-space:nowrap;color:#f6d4b1;background:#3b2b25;padding:8px 12px;border-radius:6px}.is-secondary .edu-score{font-size:.6rem;padding:6px 10px}.edu-courses{grid-column:2 / -1;margin-top:14px}.edu-courses-label{display:block;font-family:chill,sans-serif;font-size:.82rem;opacity:.7;margin-bottom:8px}.edu-courses ul{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0}.edu-courses li{font-family:chill,sans-serif;font-size:.8rem;padding:3px 8px;border:dashed 1px #3b2b25;box-shadow:1px 1px #f6d4b1,3px 3px 0 var(--shadow)}@media (max-width: 640px){.edu-item,.edu-item.is-secondary{grid-template-columns:1fr;gap:12px}.edu-score{justify-self:start}.edu-courses{grid-column:1}}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;width:clamp(0px,95vw,900px);margin:40px auto 0;padding:0 16px;box-sizing:border-box}.stat-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;box-sizing:border-box;border:dashed 2px #3b2b25;border-radius:12px;background:#fffaf259;box-shadow:1px 1px #f6d4b1,5px 5px 0 var(--shadow)}.stat-value{font-family:public-pixel,monospace;font-size:1.4rem;line-height:1.1;color:#3b2b25}.stat-label{font-family:chill,sans-serif;font-size:.85rem;line-height:1.4;text-align:center;color:#3b2b25;opacity:.8}.xp-list{display:flex;flex-direction:column;gap:28px;width:clamp(0px,95vw,820px);margin:0 auto;padding:8px 16px 0;box-sizing:border-box}.xp-item{position:relative;display:grid;grid-template-columns:56px 1fr;gap:18px;padding:24px;box-sizing:border-box;text-align:left;border:dashed 2px #3b2b25;border-radius:12px;background:#fffaf259;box-shadow:1px 1px #f6d4b1,6px 6px 0 var(--shadow)}.xp-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#3b2b25;border-radius:10px;box-shadow:3px 3px #0003}.xp-icon svg{width:32px;height:32px;display:block;color:#f6d4b1}.xp-role{display:inline-block;font-family:public-pixel,monospace;font-size:.92rem;line-height:1.45;color:#f6d4b1;background:#3b2b25;padding:8px 14px;border-radius:6px;margin:0 0 10px}.xp-company{display:block;font-family:chill,sans-serif;font-size:1rem;color:#3b2b25;margin-bottom:2px}.xp-meta{display:block;font-family:chill,sans-serif;font-size:.85rem;color:#3b2b25;opacity:.72;margin-bottom:14px}.xp-bullets{list-style:none;padding:0;margin:0 0 14px}.xp-bullets li{position:relative;padding-left:20px;margin-bottom:8px;font-family:chill,sans-serif;font-size:.92rem;line-height:1.55;color:#3b2b25}.xp-bullets li:before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;background:#3b2b25}.xp-tech{display:flex;flex-wrap:wrap;gap:8px}.xp-tech span{font-family:public-pixel,monospace;font-size:.52rem;text-transform:uppercase;color:#3b2b25;padding:5px 10px;border:dashed 1px #3b2b25;box-shadow:1px 1px #f6d4b1,3px 3px 0 var(--shadow)}@media (max-width: 640px){.xp-item{grid-template-columns:1fr;gap:14px;padding:20px 18px}.xp-role{font-size:.8rem}}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:20px;width:clamp(0px,95vw,980px);margin:0 auto;padding:8px 16px 0;box-sizing:border-box}.skill-group{min-width:0;padding:22px 20px;box-sizing:border-box;text-align:left;border:dashed 2px #3b2b25;border-radius:12px;background:#fffaf259;box-shadow:1px 1px #f6d4b1,6px 6px 0 var(--shadow)}.skill-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.skill-head svg{width:30px;height:30px;flex-shrink:0;display:block;color:#3b2b25}.skill-head span{font-family:public-pixel,monospace;font-size:.72rem;line-height:1.4;color:#3b2b25}.skill-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.skill-chips li{font-family:chill,sans-serif;font-size:.85rem;color:#3b2b25;padding:4px 9px;border:dashed 1px #3b2b25;box-shadow:1px 1px #f6d4b1,3px 3px 0 var(--shadow)}.contact-grid{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;padding:24px 16px 8px;max-width:1000px;margin:0 auto;box-sizing:border-box}.contact-card{display:flex;flex-direction:column;align-items:center;gap:10px;width:208px;padding:22px 16px;box-sizing:border-box;text-decoration:none;color:#f6d4b1;background:#3b2b25;border:#f6d4b1 solid 1px;border-radius:12px;box-shadow:6px 6px 0 var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.contact-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--shadow)}.contact-card:active{transform:translate(0);box-shadow:3px 3px 0 var(--shadow)}.contact-card svg{width:40px;height:40px;display:block;color:#f6d4b1}.contact-label{font-family:public-pixel,monospace;font-size:.75rem}.contact-value{font-family:chill,sans-serif;font-size:.72rem;opacity:.8;text-align:center;overflow-wrap:anywhere}.contact-footnote{text-align:center!important;font-size:.9rem;opacity:.7;padding-top:20px!important}[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1)}[data-reveal].is-revealed{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){[data-reveal]{opacity:1;transform:none;transition:none}.card-content{transition:none}}:root{--color: #3b2b25;--cream: #f6d4b1;--paper: #fffaf2;--shadow: rgba(82, 82, 82, .25)}@font-face{font-family:public-pixel;src:url(/fonts/public-pixel.woff)}@font-face{font-family:chill;src:url(/fonts/chill.woff)}*{margin:0;padding:0}html{background-color:#f6d4b1}body{overflow-x:clip;background-color:#f6d4b1;font-family:chill,sans-serif;font-size:18px;-webkit-text-size-adjust:100%}.webgl{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;outline:none;z-index:1}#hero-backup{display:flex;flex-direction:column;justify-content:center;gap:16px;position:absolute;top:0;left:0;right:0;bottom:0;width:clamp(0px,95vw,580px);margin:auto;color:var(--color);outline:none;z-index:0}#hero-backup h1,#hero-backup h3{margin:0;text-align:left}#hero-backup ul{margin-left:32px}.webgl:active{cursor:grabbing}#textarea{position:fixed;top:0;right:0;outline:none;z-index:-1;opacity:0}#loading{color:#f6d4b1;background-color:var(--color);position:fixed;top:0;bottom:0;left:0;right:0;padding:10vw;z-index:6;transition:opacity .3s;display:flex;flex-direction:column;justify-content:center;gap:16px}#loading h2{text-align:left;margin:0;padding:0}#loading-items{height:64px;overflow:hidden;text-overflow:ellipsis}#loading-bar{position:relative;width:100%;height:64px;border:dashed 2px #f6d4b1;box-shadow:2px 2px 0 var(--color),6px 6px #f6d4b1b3}#loading-bar-progress{position:absolute;top:2px;bottom:2px;left:2px;right:2px;background-color:#f6d4b1;transform:scaleX(0);transform-origin:left;transition:transform .2s}h1{display:inline-block;color:#f6d4b1;background-color:var(--color);font-family:public-pixel,monospace;font-size:2em;padding:4px 16px 8px;margin:0 auto .3em}h2{display:inline-block;font-size:1.2em;text-align:center;color:#f6d4b1;background-color:var(--color);font-family:public-pixel,monospace;padding:4px 16px 8px;margin:.3em auto}h3{font-size:1.2em;text-align:center;color:var(--color);font-family:public-pixel,monospace;padding-top:4px;padding-bottom:8px;margin:.3em auto}hr{width:100px;height:2px;background-color:none;margin:40px auto;border:none;border-bottom:dashed 2px var(--color)}.skills,p{padding:16px;text-align:left;line-height:1.5;width:clamp(0px,95vw,680px);margin:auto;box-sizing:border-box}.skills{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;align-items:center;gap:16px;text-align:center;list-style-type:none;transition:all .3s}.skills li{display:inline-block;padding:4px 8px;border:dashed 1px var(--color);box-shadow:1px 1px #f6d4b1,4px 4px #52525240}.image{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:16px;margin:auto}.image *{box-sizing:border-box;width:clamp(0px,95vw,1200px);box-shadow:1px 1px #f6d4b1,6px 6px #52525240}main{color:var(--color);margin-top:200vh;text-align:center;position:relative;z-index:2}section{padding-bottom:64px;margin-bottom:80px;position:relative}section:after{content:"";border-bottom:dashed 2px var(--color);position:absolute;bottom:0;transform:translate(-50%);width:clamp(0px,95vw,680px)}section:last-of-type{border-bottom:none;margin-bottom:0}footer{display:flex;gap:32px;flex-direction:column;font-size:12px;width:clamp(0px,95vw,680px);margin:auto;padding:32px 0;text-align:center;color:var(--color);z-index:2;position:relative}a{display:inline-block;color:inherit;text-decoration-style:solid;text-decoration-thickness:2px;transition:all .3s}a:hover{transform:scale(1.1);box-shadow:1px 1px #f6d4b1,4px 4px #52525240}a:active{transform:scale(1);box-shadow:1px 1px #f6d4b1,3px 3px #52525266}.btn{position:relative;font-family:chill,sans-serif;font-size:18px;display:inline-flex;gap:.25rem;box-shadow:6px 6px #52525240;background-color:var(--color);color:#f6d4b1;cursor:pointer;transition:all .3s;padding:4px 24px;border:#f6d4b1 solid 1px;text-decoration:none}.btn:hover{transform:scale(1.1);box-shadow:8px 8px 6px #52525240;z-index:2}.btn:active{transform:scale(.95);box-shadow:4px 4px #52525266}
