@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=JetBrains+Mono:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@300;400;500;600&display=swap";:root{--bg-base:#edf5ee;--bg-surface:#e5efe6;--bg-elevated:#dce9dd;--bg-card:#d4d8e3;--bg-glass:#edf5eee0;--border-card:#b8bccb;--text-main:#0f1117;--text-muted:#4a5166;--text-dim:#9aa0b4;--accent-green:#00a651;--accent-yellow:#c89600;--accent-cyan:#007acc;--accent-coral:#e0393e;--accent-purple:#7c4dff;--accent-orange:#d4640a;--accent:var(--accent-green);--accent-glow:#00a65124;--bg-accent-light:#00a6510f;--border-accent:#00a65147;--border-light:#00000012;--border-heavy:#00000029;--pixel-shadow:3px 3px 0px #00000024;--pixel-shadow-accent:3px 3px 0px var(--accent-green);--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--font-pixel:"Press Start 2P", monospace;--font-mono:"JetBrains Mono", monospace;--font-body:"DM Sans", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{max-width:100%;overflow-x:clip}body{background:var(--bg-base);font-family:var(--font-body);color:var(--text-main);width:100%;max-width:100%;overflow-x:clip}#smooth-wrapper{width:100%;height:100%;position:fixed;inset:0;overflow:hidden}#smooth-content{width:100%;overflow:visible}#social-nav{z-index:100;flex-direction:column;align-items:center;gap:.6rem;display:flex;position:fixed;top:1.5rem;left:1.8rem}#social-nav a{border:2px solid var(--border-heavy);background:var(--bg-surface);width:36px;height:36px;color:var(--text-muted);contain:layout style;box-shadow:var(--pixel-shadow);border-radius:4px;justify-content:center;align-items:center;text-decoration:none;transition:border-color .2s,color .2s,background .2s,box-shadow .2s;display:flex}#social-nav a:hover{border-color:var(--accent-green);color:var(--accent-green);background:var(--bg-elevated);box-shadow:3px 3px 0px var(--accent-green)}#social-nav svg{fill:currentColor;width:14px;height:14px}#cv-btn{z-index:100;border:2px solid var(--accent-yellow);color:var(--accent-yellow);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;contain:layout style;box-shadow:3px 3px 0px var(--accent-yellow);background:#c8960012;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:9px;font-weight:700;text-decoration:none;transition:all .2s;display:flex;position:fixed;top:1.5rem;right:1.8rem}#cv-btn svg{flex-shrink:0;width:12px;height:12px}#cv-btn:hover{background:var(--accent-yellow);color:#fff;transform:translate(-1px,-1px);box-shadow:4px 4px #c8960059}#hero{justify-content:center;align-items:center;min-height:100vh;padding:6rem 4vw 4rem;display:flex;position:relative}.hero-inner{flex-direction:row;justify-content:space-between;align-items:center;gap:clamp(2rem,5vw,6rem);width:100%;max-width:1150px;margin:0 auto;display:flex}.hero-content{text-align:left;flex-direction:column;flex:1 1 0;align-items:flex-start;gap:1.5rem;min-width:0;display:flex}.hero-character{background:0 0;flex:none;justify-content:center;align-items:center;display:flex}.character-wrapper{isolation:isolate;background:0 0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:visible}.pixel-speech-bubble{z-index:10;width:200px;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:none;opacity:0;will-change:transform, opacity;animation:.6s ease-out .6s forwards fix-webm-glitch;position:absolute;top:50px;right:-40px}.hero-character .main-character{object-fit:contain;width:auto;max-width:500px;height:auto;max-height:600px;image-rendering:pixelated;image-rendering:crisp-edges;opacity:0;animation:.6s ease-out .4s forwards fix-webm-glitch;display:block}@keyframes fix-webm-glitch{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-location{font-family:var(--font-pixel);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-cyan);opacity:0;border-bottom:2px solid #007acc26;align-self:flex-start;padding-bottom:.6rem;font-size:7px;line-height:2}.hero-title-group{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.hero-greeting{font-family:var(--font-pixel);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);opacity:0;font-size:clamp(7px,1.2vw,10px);line-height:2}.name-3d-outer{opacity:0;transform-style:preserve-3d;will-change:transform;display:block}.name-3d-inner{will-change:transform;display:block}.hero-name{font-family:var(--font-pixel);color:var(--accent-green);letter-spacing:.04em;text-shadow:4px 4px #004d25,0 0 24px #00a6512e;margin:0;font-size:clamp(2rem,7vw,5.5rem);font-weight:400;line-height:1.2;display:block}.hero-statement{font-family:var(--font-body);color:var(--text-muted);opacity:0;max-width:650px;font-size:clamp(.92rem,1.5vw,1.08rem);font-weight:400;line-height:1.75}.digital-garden{color:var(--accent-green);text-shadow:1px 1px #00a65126;font-weight:600;display:inline;position:relative}.digital-garden:after{content:"";background:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 4\"><path d=\"M0,2 Q5,4 10,2 T20,2\" fill=\"none\" stroke=\"%2300a651\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>") 0 0/18px 4px repeat-x;width:100%;height:4px;position:absolute;bottom:-4px;left:0}.letter-span{animation:.7s 9999s both letter-glow;display:inline}@keyframes letter-glow{0%{opacity:0;text-shadow:0 0 1px #00a6511a}55%{opacity:1;text-shadow:0 0 10px #00a6518c}75%{opacity:1}to{opacity:.9;text-shadow:none}}.hero-details{border-top:2px solid var(--border-light);flex-direction:column;align-items:flex-start;gap:.5rem;width:100%;padding-top:1.2rem;display:flex}.hero-detail{font-family:var(--font-body);color:var(--text-muted);opacity:0;max-width:520px;font-size:clamp(.86rem,1.3vw,1rem);font-weight:300;line-height:1.7}.hero-detail--2{color:var(--text-dim);font-style:italic}.wavy-blue{-webkit-text-decoration:underline wavy var(--accent-cyan);text-decoration:underline wavy var(--accent-cyan);text-underline-offset:5px;color:var(--accent-cyan);text-decoration-thickness:2px}.dobi-link{pointer-events:none;display:inline-block;position:relative}.dobi-link.show-cursor{pointer-events:auto}.dobi-link .letter-span{color:var(--accent-cyan)}.dobi-link:before{content:"";background-color:var(--accent-cyan);transform-origin:0;pointer-events:none;width:100%;height:2px;transition:transform .3s;position:absolute;bottom:-6px;left:0;transform:scaleX(0)}.dobi-link.show-cursor:hover:before{transform:scaleX(1)}.dobi-link:after{content:"";opacity:0;pointer-events:none;z-index:10;background:url(/images/mouse-click.gif) 50%/contain no-repeat;width:45px;height:45px;transition:opacity .6s;position:absolute;bottom:-10px;right:-8px}.dobi-link.show-cursor:after{opacity:1;animation:3.5s .3s infinite cursor-click-pulse}@keyframes cursor-click-pulse{0%{transform:scale(1)translate(0)}5%{transform:scale(.85)translate(2px,2px)}10%{transform:scale(1)translate(0)}15%{transform:scale(.85)translate(2px,2px)}20%{transform:scale(1)translate(0)}to{transform:scale(1)translate(0)}}.hero-scroll-hint{font-family:var(--font-pixel);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);opacity:0;flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:2rem;font-size:7px;display:flex}.hero-scroll-line{background:var(--border-light);width:40px;height:2px;display:inline-block;position:relative;overflow:hidden}.hero-scroll-line:after{content:"";background:var(--accent-green);width:100%;height:100%;animation:2.5s ease-in-out infinite scrollLineSlide;position:absolute;top:0;left:-100%}@keyframes scrollLineSlide{0%{transform:translate(-100%)}50%{transform:translate(100%)}to{transform:translate(100%)}}@media (width<=768px){#hero{align-items:flex-start;padding:11rem 1.5rem 3rem;overflow:hidden}.hero-inner{width:100%;display:block;position:relative}.hero-content{flex-direction:column;align-items:flex-start;gap:1.5rem;width:100%;display:flex}.hero-title-group{padding-right:115px}.hero-character{flex:none;justify-content:center;align-items:flex-start;width:100px;margin:0;padding:0;display:flex;position:absolute;top:4.8rem;right:1.5rem}.hero-character .main-character{width:100px;max-width:100px;max-height:130px;display:block}.pixel-speech-bubble{width:90px;top:-22px;right:-8px}.hero-scroll-hint{align-items:flex-start}}@media (width<=480px){.hero-character{width:82px;top:3rem;right:1.5rem}.hero-title-group{padding-right:96px}.hero-character .main-character{width:90px;max-width:90px;max-height:150px}.pixel-speech-bubble{width:74px;top:-18px;right:-30px}}section{z-index:10;padding:0 4vw;position:relative}.section{padding-top:5rem;padding-bottom:4rem}#portfolio{padding-top:1rem;padding-bottom:2rem}.portfolio-intro-section{padding-bottom:0}.section-label{font-family:var(--font-pixel);letter-spacing:.25em;text-transform:uppercase;color:var(--accent-cyan);margin-bottom:.75rem;font-size:8px;line-height:2}.section-title{font-family:var(--font-pixel);color:var(--text-main);letter-spacing:.04em;text-shadow:3px 3px #00000014;margin-bottom:3rem;font-size:clamp(1.2rem,3vw,1.8rem);line-height:1.6}.cards{flex-direction:column;gap:1.5rem;display:flex}.card{background:var(--bg-card);border:2px solid var(--border-card);box-shadow:var(--pixel-shadow);transition:all .2s var(--ease-out);border-radius:4px;padding:1.75rem 2rem}.card:hover{border-color:var(--accent-green);box-shadow:5px 5px 0px var(--accent-green);background:#cfd2e0;transform:translate(-2px,-2px)}.card h3{font-family:var(--font-pixel);color:var(--text-main);text-shadow:2px 2px #0000000f;margin-bottom:.2rem;font-size:.8rem;line-height:1.6}.card-company{font-family:var(--font-mono);color:var(--accent-cyan);letter-spacing:.04em;font-size:.72rem}.card-date{font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-size:.68rem}.card-desc{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem;line-height:1.75}.tags{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.tags span{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);background:#00a65112;border:1px solid #00a65138;border-radius:2px;padding:.25rem .65rem;font-size:.62rem;box-shadow:2px 2px #00000014}#journey{perspective:1000px;flex-direction:column;align-items:center;padding-top:6rem;padding-bottom:6rem;display:flex;overflow:visible}.journey-glitch{font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;color:var(--text-main);text-align:center;-webkit-user-select:none;user-select:none;text-shadow:3px 3px #00000014;margin-bottom:5rem;font-size:clamp(1.2rem,4vw,2.5rem);line-height:1.6;position:relative}.journey-glitch:before,.journey-glitch:after{content:attr(data-text);opacity:.55;position:absolute;inset:0}.journey-glitch:before{color:var(--accent-coral);mix-blend-mode:multiply;animation:4s infinite alternate journey-glitch;transform:translate(3px,-2px)}.journey-glitch:after{color:var(--accent-cyan);mix-blend-mode:multiply;animation:3s infinite alternate-reverse journey-glitch;transform:translate(-3px,2px)}@keyframes journey-glitch{0%{clip-path:inset(0 0 70%)}25%{clip-path:inset(20% 0 40%)}50%{clip-path:inset(40% 0 20%)}75%{clip-path:inset(10% 0 60%)}to{clip-path:inset(0)}}.journey-row{justify-content:center;gap:1.5rem;width:100%;max-width:1100px;margin-bottom:1.5rem;display:flex}.journey-row--work,.journey-row--edu{align-items:stretch}.holo-card{background:var(--bg-card);border:2px solid var(--border-card);z-index:0;border-radius:4px;padding:2rem 2rem 1.8rem;transition:box-shadow .4s,border-color .3s;position:relative;overflow:hidden;box-shadow:4px 4px #0000001f}.holo-card:hover{border-color:var(--accent-orange);box-shadow:6px 6px 0px var(--accent-orange)}.holo-card__glow{filter:blur(14px);opacity:.7;z-index:-1;pointer-events:none;background:linear-gradient(120deg,#0000 20%,#7c4dff12,#d4640a17,#007acc12,#0000 80%) 0 0/400% 100%;border-radius:6px;position:absolute;inset:-2px}.holo-card--work{flex:1 1 0;min-width:0;max-width:400px}.holo-card--edu{flex:auto;width:100%}.holo-card__eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-orange);margin-bottom:.9rem;font-size:.62rem}.holo-card__title{font-family:var(--font-pixel);color:var(--text-main);letter-spacing:.02em;text-shadow:2px 2px #0000000f;margin-bottom:.35rem;font-size:clamp(.65rem,1.5vw,.85rem);line-height:1.8}.holo-card__company{font-family:var(--font-mono);color:var(--accent-cyan);letter-spacing:.04em;margin-bottom:1rem;font-size:.7rem}.holo-card__desc{font-family:var(--font-body);color:var(--text-muted);flex-grow:1;margin-bottom:1.2rem;font-size:.88rem;line-height:1.7}.holo-card__tags{flex-wrap:wrap;gap:.4rem;margin-top:auto;display:flex}.holo-card__tags span{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-orange);background:#d4640a0f;border:1px solid #d4640a40;border-radius:2px;padding:.25rem .65rem;font-size:.58rem;transition:border-color .2s,background .2s;box-shadow:1px 1px #00000014}.holo-card__tags span:hover{background:#d4640a1f;border-color:#d4640a80}@media (width<=900px){.journey-row--work{flex-direction:column;align-items:center}.holo-card--work{flex:none;width:100%;max-width:100%}}@media (width<=600px){.journey-row{padding:0}#journey{padding-top:4rem;padding-bottom:4rem}.journey-glitch{margin-bottom:3rem}.holo-card{overflow:visible;transform:none!important}.holo-card__glow{display:none}.holo-card__eyebrow,.holo-card__title,.holo-card__company,.holo-card__desc{visibility:visible!important;opacity:1!important;display:block!important}.holo-card__eyebrow{color:var(--accent-orange)}.holo-card__title{color:var(--text-main)}.holo-card__company{color:var(--accent-cyan)}.holo-card__desc{color:var(--text-muted)}.no-phone-date{display:inline!important}}#skills{perspective:800px;flex-direction:column;align-items:center;padding-top:5rem;padding-bottom:6rem;display:flex}.skills-glitch{margin-bottom:4rem}.skills-categories{flex-direction:column;gap:4rem;width:100%;max-width:1100px;margin-top:1rem;display:flex}.skills-category{flex-direction:column;align-items:center;gap:2rem;display:flex}.skills-category__label{font-family:var(--font-pixel);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-purple);text-align:center;padding:0 2rem;font-size:8px;line-height:2;position:relative}.skills-category__label:before,.skills-category__label:after{content:"";background:#7c4dff33;width:3rem;height:2px;position:absolute;top:50%}.skills-category__label:before{right:100%}.skills-category__label:after{left:100%}.skills-icon-grid{flex-wrap:wrap;justify-content:center;gap:1.2rem;display:flex}.skill-logo{cursor:default;transform-style:preserve-3d;flex-direction:column;align-items:center;gap:.65rem;animation:8s ease-in-out infinite skill-float;display:flex}.skill-logo:nth-child(2n){animation-delay:-1.8s}.skill-logo:nth-child(3n){animation-delay:-3.6s}.skill-logo:nth-child(4n){animation-delay:-5.4s}.skill-logo:nth-child(5n){animation-delay:-7.2s}.skill-logo svg{filter:drop-shadow(0 3px 8px #0000001f);flex-shrink:0;width:48px;height:48px;transition:filter .3s,transform .2s}.skill-logo:hover svg{filter:drop-shadow(0 4px 16px #7c4dff4d)brightness(1.05);transform:translateY(-2px)}.skill-logo span{font-family:var(--font-pixel);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);text-align:center;font-size:6px;line-height:1.4}@keyframes skill-float{0%,to{transform:rotateX(5deg)rotateY(-4deg)translateY(0)}50%{transform:rotateX(8deg)rotateY(6deg)translateY(-9px)}}.skills-grid,.skill-group-title,.skill-group{display:none}@media (width<=768px){.skills-icon-grid{gap:.85rem}.skills-categories{gap:2.5rem}}#contact{text-align:center;flex-direction:column;align-items:center;padding-bottom:10rem;display:flex}#contact .section-label,#contact .section-title{text-align:center;align-self:center}.contact-sub{font-family:var(--font-body);color:var(--text-muted);margin-bottom:2.5rem;font-size:1rem;font-weight:300}#contact-modal-overlay{z-index:500;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);contain:layout style;background:#eef6efb8;justify-content:center;align-items:center;padding:1rem;display:none;position:fixed;inset:0}#contact-modal-overlay.open{display:flex}#contact-modal{background:var(--bg-base);border:2px solid var(--accent-green);width:100%;max-width:480px;box-shadow:6px 6px 0px var(--accent-green);border-radius:4px;max-height:90vh;padding:clamp(1.5rem,5vw,2.5rem);animation:.4s both fadeUp;position:relative;overflow-y:auto}#contact-modal h3{font-family:var(--font-pixel);color:var(--accent-green);text-shadow:2px 2px #0000000f;margin-bottom:.4rem;font-size:1rem;line-height:1.8}#contact-modal .modal-sub{color:var(--text-muted);font-size:.85rem;line-height:1.7;font-family:var(--font-body);margin-bottom:1.8rem}#contact-modal .modal-sub span{font-family:var(--font-mono);color:var(--accent-cyan);font-size:.75rem}.modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1;transition:color .2s;position:absolute;top:1.2rem;right:1.4rem}.modal-close:hover{color:var(--accent-coral)}.modal-field{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.modal-field label{font-family:var(--font-pixel);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);font-size:7px;line-height:2}.modal-field input,.modal-field textarea{background:var(--bg-surface);border:2px solid var(--border-heavy);color:var(--text-main);font-family:var(--font-body);resize:none;border-radius:2px;outline:none;padding:.75rem 1rem;font-size:.9rem;transition:border-color .25s,box-shadow .25s}.modal-field input:focus,.modal-field textarea:focus{border-color:var(--accent-green);box-shadow:2px 2px 0px var(--accent-green)}.modal-row{grid-template-columns:1fr;gap:.75rem;margin-bottom:1rem;display:grid}@media (width>=600px){.modal-row{grid-template-columns:1fr 1fr}}.modal-row .modal-field{margin-bottom:0}.modal-send{border:2px solid var(--accent-green);width:100%;color:var(--accent-green);font-family:var(--font-pixel);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:3px 3px 0px var(--accent-green);background:#00a65114;border-radius:2px;margin-top:.5rem;padding:.85rem;font-size:8px;line-height:2;transition:all .2s}.modal-send:hover{background:var(--accent-green);color:#fff;transform:translate(-1px,-1px);box-shadow:4px 4px #004d25}.modal-phone{text-align:center;font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.05em;margin-top:1.4rem;font-size:.72rem}.modal-phone a{color:var(--accent-cyan);text-decoration:none;transition:opacity .2s}.modal-phone a:hover{opacity:.65}.modal-success{text-align:center;font-family:var(--font-pixel);color:var(--accent-green);padding:2rem 0;font-size:9px;line-height:2.5;display:none}.portfolio-title{text-align:center;letter-spacing:.08em;line-height:1.4;font-family:var(--font-pixel);color:var(--accent-yellow);text-shadow:4px 4px #c8960033;margin:0 0 6rem;font-size:clamp(1.5rem,5vw,3.5rem);display:block}.portfolio-letter{will-change:transform;cursor:default;transition:color .2s,text-shadow .2s;display:inline-block}.portfolio-letter:hover{color:var(--accent-coral);text-shadow:4px 4px #e0393e33}.portfolio-pin-section{justify-content:center;align-items:center;width:100%;height:100vh;display:flex;overflow:hidden}.portfolio-content{align-items:center;gap:5rem;width:100%;max-width:1200px;margin:0 auto;padding:0 4vw;display:flex;position:relative}.portfolio-left{backface-visibility:hidden;flex:none;padding-left:1.5rem;position:relative;transform:translateZ(0)}.portfolio-fill{background-color:var(--accent-green);transform-origin:0 0;width:3px;height:100%;position:absolute;top:0;left:0}.portfolio-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.portfolio-list li{font-family:var(--font-pixel);letter-spacing:.04em;color:var(--text-muted);cursor:default;white-space:nowrap;backface-visibility:hidden;will-change:color;font-size:clamp(.6rem,1.5vw,.85rem);line-height:2;transform:translateZ(0)}.portfolio-right{flex:1;height:460px;position:relative}.portfolio-slide{opacity:0;visibility:hidden;justify-content:flex-end;align-items:center;display:flex;position:absolute;inset:0}.portfolio-slide.center{align-items:center}.project-card{background:var(--bg-card);border:2px solid var(--border-card);will-change:transform;backface-visibility:hidden;border-radius:4px;flex-direction:column;width:100%;max-width:760px;height:420px;padding:2rem 2.8rem;transition:border-color .25s,box-shadow .25s;display:flex;overflow:hidden;transform:translateZ(0);box-shadow:5px 5px #0000001a}.project-card:hover{border-color:var(--accent-yellow);box-shadow:6px 6px 0px var(--accent-yellow)}.slide-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-cyan);align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.68rem;font-weight:700;display:flex}.slide-label:before{content:">";color:var(--accent-green);font-family:var(--font-pixel);font-size:8px}.slide-title{font-family:var(--font-pixel);letter-spacing:.03em;color:var(--accent-yellow);text-shadow:3px 3px #00000012;margin-bottom:1rem;font-size:clamp(.65rem,1.6vw,.95rem);line-height:1.8}.slide-desc{font-family:var(--font-body);color:var(--text-muted);flex-grow:1;margin-bottom:1.5rem;font-size:.92rem;font-weight:300;line-height:1.7}.slide-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.slide-tags span{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);background:#00a6510f;border:1px solid #00a65138;border-radius:2px;padding:.3rem .75rem;font-size:.62rem;font-weight:700;transition:background .2s,border-color .2s,box-shadow .2s;box-shadow:2px 2px #00000012}.slide-tags span:hover{border-color:var(--accent-green);box-shadow:2px 2px 0px var(--accent-green);background:#00a6511f}.slide-link{font-family:var(--font-pixel);color:var(--accent-yellow);letter-spacing:.08em;border:1px solid var(--accent-yellow);box-shadow:2px 2px 0px var(--accent-yellow);background:#c8960012;border-radius:2px;align-self:flex-start;align-items:center;gap:.5rem;padding:.4rem .8rem;font-size:7px;line-height:2;text-decoration:none;transition:all .2s;display:inline-flex}.slide-link:after{content:"↗";font-family:var(--font-body);font-size:.9em;transition:transform .2s}.slide-link:hover{background:var(--accent-yellow);color:#fff;transform:translate(-1px,-1px);box-shadow:3px 3px #c8960059}.slide-link:hover:after{transform:translate(2px,-2px)}@media (width<=768px){.pin-spacer:has(.portfolio-pin-section){height:auto!important;min-height:0!important;max-height:none!important;padding:0!important}.portfolio-pin-section{border-top:none;border-bottom:none;padding:3rem 1.5rem 0;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;position:static!important;inset:auto!important;transform:none!important}.portfolio-content{flex-direction:column;align-items:flex-start;gap:2rem;padding:0}.portfolio-left{display:none}.portfolio-right{width:100%;min-height:auto;position:static;height:auto!important}.portfolio-slide{justify-content:flex-start;margin-bottom:2rem;opacity:1!important;visibility:visible!important;display:flex!important;position:static!important}.project-card{max-width:100%;height:auto;min-height:auto;padding:1.75rem 1.5rem;overflow:visible}.slide-title{font-size:.7rem}.slide-desc{font-size:.85rem}}#site-footer{z-index:10;border-top:2px solid var(--border-heavy);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2rem 4vw 3rem;display:flex;position:relative}#site-footer p{font-family:var(--font-pixel);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:7px;line-height:2}.footer-stack{color:var(--text-dim);opacity:.7;font-family:var(--font-mono)!important;letter-spacing:.06em!important;text-transform:none!important;font-size:.65rem!important}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#animations-intro{z-index:10;justify-content:center;align-items:center;width:100%;height:120vh;padding:0;display:flex;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0% 85%,#000000b3 90%,#0000004d 95%,#0000000d 98%,#0000 100%);mask-image:linear-gradient(#000 0% 85%,#000000b3 90%,#0000004d 95%,#0000000d 98%,#0000 100%)}#hole-overlay{transform-origin:50%;opacity:0;will-change:transform, opacity;pointer-events:none;z-index:1;background:radial-gradient(circle,#1a2e1e 0% 35%,#142616b3 60%,#111c1240 80%,#0000 100%);border-radius:50%;width:180px;height:180px;position:absolute;top:50vh;left:50%;transform:translate(-50%,-50%)scale(.2)}#hole-img{transform-origin:50%;object-fit:contain;width:180px;height:180px;image-rendering:pixelated;image-rendering:crisp-edges;will-change:transform, opacity;z-index:2;pointer-events:none;position:absolute;top:50vh;left:50%;transform:translate(-50%,-50%)scale(1)}#animations-title{white-space:nowrap;opacity:0;z-index:3;color:#fff;text-shadow:3px 3px #00000073,0 0 32px #0000004d;pointer-events:none;font-size:clamp(1.8rem,6vw,3.8rem);position:absolute;top:50vh;left:50%;transform:translate(-50%,-50%)}#animations-title:before{color:#ff6b6b}#animations-title:after{color:#7fdfff}.model-showcase{justify-content:center;align-items:center;min-height:100vh;padding:0;display:flex;overflow:hidden}.showcase-card{background:var(--bg-card);border:2px solid var(--border-card);opacity:0;will-change:transform;border-radius:4px;align-items:stretch;width:85%;max-width:100%;height:85vh;transition:border-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:6px 6px #00000024}.showcase-card:hover{border-color:#00000047}.showcase-text{z-index:5;text-align:center;border-right:2px solid var(--border-card);flex-direction:column;flex:0 0 42%;justify-content:center;align-items:center;padding:4rem 3.5rem;display:flex;position:relative;overflow:visible}.showcase-card.reverse .showcase-text{border-right:none;border-left:2px solid var(--border-card);order:2}.showcase-viewer{flex:1;min-height:100%;position:relative}.showcase-card.reverse .showcase-viewer{order:1}.showcase-canvas{opacity:0;cursor:default;touch-action:none;width:100%;height:100%;display:block}.showcase-canvas:active{cursor:grabbing}.showcase-loader{z-index:6;pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;inset:0}.showcase-drag-hint{font-family:var(--font-pixel);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);pointer-events:none;z-index:7;white-space:nowrap;opacity:0;font-size:6px;line-height:2;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}@media (width<=768px){.model-showcase{min-height:auto;padding:4rem 1rem 2rem}.showcase-card{flex-direction:column;width:100%;height:auto}.showcase-card.reverse .showcase-text,.showcase-text{border-left:none;border-right:none;border-bottom:2px solid var(--border-card);flex:none;order:0;width:100%;padding:2rem 1.5rem}.showcase-card.reverse .showcase-viewer,.showcase-viewer{order:1;min-height:55vw}}.porsche-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-cyan);align-items:center;gap:.4rem;margin-bottom:1.2rem;font-size:.68rem;display:flex}.porsche-label:before{content:"//";color:var(--accent-green);font-family:var(--font-mono);font-weight:700}.porsche-title{font-family:var(--font-pixel);letter-spacing:.03em;color:var(--accent-yellow);text-shadow:3px 3px #00000012;margin-bottom:1.4rem;font-size:clamp(1rem,2.5vw,1.6rem);line-height:1.6}.porsche-desc{font-family:var(--font-body);color:var(--text-muted);margin-bottom:2rem;font-size:.92rem;font-weight:300;line-height:1.75}.porsche-tags{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:2rem;display:flex}.porsche-tags span{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-green);background:#00a6510f;border:1px solid #00a65138;border-radius:2px;padding:.3rem .75rem;font-size:.6rem;font-weight:700;transition:background .2s,border-color .2s;box-shadow:2px 2px #00000012}.porsche-tags span:hover{border-color:var(--accent-green);background:#00a6511f}.porsche-meta{font-family:var(--font-pixel);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:6px;line-height:2}.porsche-loader,.showcase-loader{z-index:6;pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;inset:0}.porsche-loader-dot{background:var(--accent-green);border-radius:0;width:8px;height:8px;animation:1.2s ease-in-out infinite loaderPulse}.porsche-loader-dot:nth-child(2){animation-delay:.2s}.porsche-loader-dot:nth-child(3){animation-delay:.4s}@keyframes loaderPulse{0%,80%,to{opacity:.3;transform:scale(.7)}40%{opacity:1;transform:scale(1.1)}}.porsche-drag-hint{font-family:var(--font-pixel);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);pointer-events:none;z-index:7;white-space:nowrap;opacity:0;font-size:6px;line-height:2;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}#porsche-showcase{justify-content:center;align-items:center;min-height:100vh;padding:2rem 0 0;display:flex}.porsche-card{background:var(--bg-surface);border:2px solid var(--border-heavy);will-change:transform;opacity:0;border-radius:4px;align-items:stretch;width:100%;max-width:650px;height:auto;min-height:420px;display:flex;position:relative;overflow:visible;box-shadow:5px 5px #00000014}.porsche-card:hover{border-color:var(--accent-yellow);box-shadow:6px 6px 0px var(--accent-yellow)}.porsche-card-face{z-index:4;pointer-events:none;flex-direction:column;justify-content:center;width:50%;padding:3rem 4rem;display:flex;position:absolute;top:0;bottom:0;left:0}.porsche-card-face.is-hidden{opacity:0}.intro-eyebrow{font-family:var(--font-mono);letter-spacing:.25em;text-transform:uppercase;color:var(--accent-cyan);margin-bottom:1.2rem;font-size:.65rem}.intro-heading{font-family:var(--font-pixel);letter-spacing:.04em;color:var(--accent-yellow);text-shadow:4px 4px #00000012;margin-bottom:2rem;font-size:clamp(1.5rem,4vw,3rem);line-height:1.4}.intro-scroll-hint{font-family:var(--font-pixel);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);font-size:6px;line-height:2}.intro-img-stack{z-index:8;pointer-events:none;-webkit-user-select:none;user-select:none;width:52%;height:90%;position:absolute;top:50%;right:2%;transform:translateY(-50%)}.intro-img{object-fit:contain;transform-origin:bottom;filter:drop-shadow(0 16px 36px #00000026);width:54%;height:auto;position:absolute}.intro-img--1{z-index:5;filter:drop-shadow(0 20px 40px #0000002e);width:60%;bottom:5%;left:22%;transform:rotate(-2deg)}.intro-img--2{z-index:3;opacity:.9;width:46%;bottom:20%;left:0%;transform:rotate(-12deg)translate(-8%)}.intro-img--3{z-index:3;opacity:.9;width:50%;bottom:18%;right:0%;transform:rotate(10deg)translate(6%)}.intro-img--4{z-index:2;opacity:.75;width:38%;bottom:30%;left:2%;transform:rotate(-20deg)translate(-14%)}.intro-img--5{z-index:2;opacity:.75;width:30%;bottom:35%;right:2%;transform:rotate(22deg)translate(12%)}.porsche-text-side{z-index:5;opacity:0;pointer-events:none;border-right:2px solid var(--border-heavy);flex-direction:column;flex-shrink:0;justify-content:flex-start;width:42%;padding:4rem 3.5rem;display:flex;position:relative;overflow:visible}.porsche-viewer-side{opacity:0;flex:1;min-height:420px;position:relative}.porsche-card.is-expanded .porsche-viewer-side{min-height:100%}.porsche-canvas{opacity:0;cursor:grab;touch-action:none;width:100%;height:100%;display:block}.porsche-canvas:active{cursor:grabbing}@media (width<=768px){#porsche-showcase{min-height:auto;padding-top:4rem;padding-left:1rem;padding-right:1rem}.porsche-card{flex-direction:column;max-width:100%;min-height:auto}.porsche-card-face{padding:1.75rem 1.5rem;position:relative}.porsche-text-side{border-right:none;border-bottom:2px solid var(--border-heavy);opacity:1;width:100%;padding:2rem 1.5rem}.porsche-viewer-side{opacity:1;height:55vw;min-height:240px}.porsche-title{font-size:.9rem}}.viewer-overlay{z-index:10;cursor:pointer;background:radial-gradient(#0000 40%,#aaafc373 100%);justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}.viewer-overlay.viewer-overlay--active{opacity:0;pointer-events:none}.viewer-overlay-hint{box-shadow:3px 3px 0px var(--accent-green);background:#d8dbe6f0;border:2px solid #00a65147;border-radius:2px;align-items:center;gap:.55rem;padding:.55rem 1.2rem;animation:3s ease-in-out infinite overlayPulse;display:flex}.viewer-overlay-icon{color:var(--accent-green);font-size:.7rem;animation:4s linear infinite overlayIconSpin}.viewer-overlay-label{font-family:var(--font-pixel);letter-spacing:.18em;text-transform:uppercase;color:var(--text-main);white-space:nowrap;font-size:6px;line-height:2}@keyframes overlayPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}@keyframes overlayIconSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=768px){.hero-statement{font-size:clamp(.85rem,3.5vw,1rem)}.hero-detail{font-size:clamp(.82rem,3.5vw,.95rem)}.section{padding-top:5rem;padding-bottom:2rem}#cv-btn{padding:.4rem .75rem;font-size:8px;top:1rem;right:1rem}#social-nav{top:1rem;left:1rem}.modal-row{grid-template-columns:1fr}#contact-modal{max-width:calc(100vw - 2rem);margin:1rem;padding:1.8rem 1.5rem}#portfolio{padding-bottom:0;padding-left:0;padding-right:0}.portfolio-title{margin-bottom:2rem;padding:0 1rem}.slide-hover-hint{display:none}}#cv-btn:active,.modal-send:active,#social-nav a:active{transform:translate(2px,2px);box-shadow:1px 1px}.slide-hover-hint{font-family:var(--font-mono);letter-spacing:.12em;text-transform:lowercase;color:var(--text-dim);-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.72;border-top:1px dashed #0000001a;margin-bottom:1rem;padding-top:.6rem;font-size:.58rem;transition:opacity .2s}.project-card:hover .slide-hover-hint{opacity:1;color:var(--accent-yellow)}#project-preview-window{background:var(--bg-card);border:2px solid var(--border-card);opacity:0;pointer-events:none;will-change:transform, opacity;z-index:9999;border-radius:4px;width:440px;height:212px;position:fixed;top:0;left:0;overflow:hidden;box-shadow:5px 5px #00000026}#preview-video{object-fit:contain;background:var(--bg-card);border-radius:2px;width:100%;height:100%;display:block}.preview-loading{font-family:var(--font-pixel);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);background:var(--bg-card);pointer-events:none;opacity:0;justify-content:center;align-items:center;font-size:6px;line-height:2;transition:opacity .15s;display:flex;position:absolute;inset:0}.preview-ended-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;opacity:0;background:#b4b9cdb8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.preview-ended-overlay:after{content:"[ replay ]";font-family:var(--font-pixel);letter-spacing:.16em;text-transform:lowercase;color:var(--text-muted);border:1px solid var(--border-heavy);background:#edf5eed9;border-radius:2px;padding:.4rem .8rem;font-size:6px;line-height:2;box-shadow:2px 2px #0000001a}
