.app-layer{position:relative;width:100%;height:100%;min-height:100vh}.app-room,.app-loader{position:absolute;inset:0;transition:opacity .4s ease}.app-room{opacity:0;pointer-events:none}.app-room.visible{opacity:1;pointer-events:auto}.app-loader{opacity:1}.app-loader:not(.visible){opacity:0;pointer-events:none}.ui-fade{position:absolute;inset:0;pointer-events:none;animation:fadeIn .4s ease forwards}.ui-fade *{pointer-events:auto}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ambient-audio-toggle{position:absolute;bottom:36px;right:20px;padding:8px 14px;font-size:12px;font-family:monospace;background:#0009;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;backdrop-filter:blur(6px);cursor:pointer;z-index:1000;transition:all .2s ease}.ambient-audio-toggle:hover{transform:scale(1.05)}.ambient-audio-toggle.active{background:#0096ffcc}body.light-mode .ambient-audio-toggle{background:#ffffffb3;color:#111;border:1px solid rgba(0,0,0,.15)}.contact-form-container{display:flex;justify-content:center;align-items:center;padding:2.5rem 1rem;z-index:10;background-color:var(--bg);flex:1}.contact-form{width:100%;max-width:42rem;background:var(--form-bg);color:var(--form-text);border-radius:1rem;border:1px solid var(--border);box-shadow:0 10px 25px #0000001a;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;transition:all .3s ease}.contact-form label span{display:block;font-size:.875rem;margin-bottom:.25rem;color:var(--form-label);font-family:Montserrat,sans-serif}.contact-form input,.contact-form select,.contact-form textarea{font-size:14px;width:100%;padding:.5rem 1rem;border-radius:.375rem;border:1px solid var(--form-input-border);background:var(--form-input-bg);color:var(--form-input-text);font-family:Montserrat,sans-serif;transition:all .25s ease}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-secondary);opacity:.7}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg-soft)}.contact-form select{appearance:none}.contact-form button[type=submit]{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;border-radius:.375rem;border:1px solid var(--accent);color:var(--accent);background:transparent;cursor:pointer;font-family:Montserrat,sans-serif;font-weight:500;transition:all .3s ease}.contact-form button[type=submit]:hover{background:var(--accent);color:#fff}.contact-form button svg{width:1.25rem;height:1.25rem;stroke:currentColor}.contact-form .honeypot{display:none}.education{max-width:900px;margin:0 auto}.timeline{display:flex;flex-direction:column;gap:20px;border-left:2px solid #333;padding-left:20px}.edu-card{position:relative}.edu-card:before{content:"";position:absolute;left:-26px;top:5px;width:10px;height:10px;background:#00ff9c;border-radius:50%}.year{font-size:12px;color:#888}.edu-card h3{margin:5px 0}.edu-link{display:inline-block;font-size:.85rem;font-weight:500;color:#22c55e;text-decoration:none;border:1px solid rgba(34,197,94,.3);padding:6px 12px;border-radius:6px;transition:all .2s ease;background:#22c55e0d;margin-top:6px}.edu-link:hover{color:#16a34a;border-color:#22c55e;background:#22c55e1a;transform:translateY(-1px)}.edu-link:active{transform:scale(.97)}.edu-link:focus{outline:2px solid rgba(34,197,94,.4);outline-offset:2px}.edu-link:after{content:" →";transition:transform .2s ease;display:inline-block}.edu-link:hover:after{transform:translate(4px)}[data-theme=dark] .timeline{border-left:2px solid rgba(0,255,156,.2)}[data-theme=dark] .edu-card:before{background:#00ff9c;box-shadow:0 0 6px #00ff9c99}[data-theme=dark] .year{color:#00ff9c99}[data-theme=dark] .education{color:#dcfff0e6}[data-theme=dark] .edu-link{color:#22c55e;border:1px solid rgba(34,197,94,.3);background:#22c55e0d}[data-theme=dark] .edu-link:hover{color:#4ade80;border-color:#22c55e;background:#22c55e1a;box-shadow:0 0 8px #22c55e4d}[data-theme=light] .timeline{border-left:2px solid rgba(0,0,0,.1)}[data-theme=light] .edu-card:before{background:#2563eb;box-shadow:none}[data-theme=light] .year{color:#6b7280}[data-theme=light] .education{color:#111827}[data-theme=light] .edu-link{color:#2563eb;border:1px solid rgba(37,99,235,.3);background:#2563eb0d}[data-theme=light] .edu-link:hover{color:#1d4ed8;border-color:#2563eb;background:#2563eb1a}.footer{position:relative;margin-top:auto;min-height:80px;contain:layout}.footer-container{contain:layout;position:relative;min-height:60px;display:flex;flex-direction:column;gap:4px;padding:10px 16px;will-change:backdrop-filter;transform:translateZ(0);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:all .4s ease;z-index:50}.footer-text{min-height:20px}body.dark .footer-container{background:linear-gradient(to right,#050a14e6,#0a1423d9);border-top:1px solid rgba(80,120,200,.15);box-shadow:0 -5px 20px #0096ff0d,inset 0 1px #ffffff0d}body.dark .footer-container:after{content:"";position:absolute;inset:0;background:#00000059;pointer-events:none}body.light .footer-container{background:linear-gradient(to right,#ffffffe6,#f5f7fad9);border-top:1px solid rgba(0,0,0,.08);box-shadow:0 -4px 20px #0000000d}.footer-container:before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(255,255,255,.12),transparent 50%);pointer-events:none}body.dark .footer-container:before{background:linear-gradient(to top,rgba(100,150,255,.08),transparent 50%)}.footer-text{opacity:.7}body.light .footer-text{color:#4b5563}body.dark .footer-text{color:#c8dcffb3}.footer-links{display:flex;gap:14px}.footer-link{position:relative;text-decoration:none;transition:all .2s ease}body.light .footer-link{color:#6b7280}body.light .footer-link:hover{color:#111827}body.dark .footer-link{color:#b4d2ffb3}body.dark .footer-link:hover{color:#67e8f9;text-shadow:0 0 6px rgba(0,200,255,.6)}.footer-link:after{content:"";position:absolute;left:0;bottom:-3px;width:0%;height:1px;background:currentColor;transition:width .25s ease}.footer-link:hover:after{width:100%}body.dark .footer:before{content:"";position:absolute;top:-20px;left:0;width:100%;height:40px;background:radial-gradient(ellipse at center,rgba(0,200,255,.08),transparent 70%);pointer-events:none}.shelf{position:absolute;width:316px;height:139px;margin:38px;bottom:36%;display:flex;align-items:flex-end;align-self:center;justify-content:start;z-index:3}body[data-theme=light] .shelf{border-bottom:8px solid #979a94ff}body[data-theme=dark] .shelf{border-bottom:8px solid #262838ff}#gameboy-slot{position:relative;display:inline-block;width:60px;height:80px;display:flex;align-items:flex-end;justify-content:center;margin-left:16px}.memory-badge{position:absolute;bottom:80px;left:50%;transform:translate(-50%) scale(.8);padding:4px 10px;font-size:11px;font-family:monospace;background:#000000bf;color:#00ff9c;border:1px solid rgba(0,255,150,.6);border-radius:6px;opacity:0;pointer-events:none;box-shadow:0 0 10px #00ff964d;transition:all .35s ease}.memory-badge.show{opacity:1;transform:translate(-50%) scale(1);animation:memoryPulse 2.5s ease infinite}@keyframes memoryPulse{0%,to{box-shadow:0 0 8px #00ff9640}50%{box-shadow:0 0 16px #00ff9699}}#gameboy{width:60px;height:auto;position:absolute;bottom:0;left:50%;transform:translate(-50%);cursor:pointer;transition:all .4s ease;transform-origin:bottom center}#gameboy.locked{filter:grayscale(1) brightness(.5);opacity:.4;pointer-events:none}#gameboy.unlocked{filter:none;opacity:1;animation:gameboyUnlock 1s ease}#gameboy.unlock-animation{animation:gameboyGlow 1.6s ease}@keyframes gameboyGlow{0%{transform:translate(-50%) scale(.7);opacity:0;filter:brightness(3)}40%{transform:translate(-50%) scale(1.15);filter:brightness(2)}70%{transform:translate(-50%) scale(.95)}to{transform:translate(-50%) scale(1);opacity:1}}@keyframes gameboyUnlock{0%{transform:translate(-50%) scale(.7);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:none;justify-content:center;align-items:center;z-index:10}.overlay-content{position:relative}.overlay img{max-width:400px;border-radius:8px}#closeOverlay{position:absolute;top:-30px;right:-30px;color:#fff;font-size:30px;cursor:pointer}.fade-in{animation:fadeIn .3s ease forwards}.fade-out{animation:fadeOut .3s ease forwards}.scale-in{animation:scaleIn .3s ease forwards}.scale-out{animation:scaleOut .3s ease forwards}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}.headr{min-height:46px}.header-bar{height:46px;position:relative;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-family:monospace;font-size:13px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:all .4s ease}body.dark .header-bar{background:linear-gradient(to right,#050a14d9,#0a1423bf);border-bottom:1px solid rgba(80,120,200,.15);box-shadow:0 0 20px #0096ff0d,inset 0 1px #ffffff0d}body.dark .header-bar:after{content:"";position:absolute;inset:0;background:#00000059;pointer-events:none}body.light .header-bar{background:linear-gradient(to right,#ffffffd9,#f5f7facc);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 4px 20px #0000000d}.header-bar:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.12),transparent 50%);pointer-events:none}body.dark .header-bar:before{background:linear-gradient(to bottom,rgba(100,150,255,.08),transparent 50%)}.header-btn{padding:4px 10px;font-size:10px;text-transform:uppercase;border-radius:6px;cursor:pointer;margin:0 2px;transition:all .2s ease}body.light .header-btn{background:#ffffffe6;border:1px solid rgba(0,0,0,.1);color:#1f2937}body.light .header-btn:hover{background:#f3f4f6;border-color:#fb923c}body.dark .header-btn{background:#141e3299;border:1px solid rgba(100,150,255,.15);color:#ffffffd9;backdrop-filter:blur(6px)}body.dark .header-btn:hover{background:#1e3250cc;border-color:#00c8ff80;box-shadow:0 0 8px #00c8ff4d}.header-status{animation:pulse 1.5s infinite}body.light .header-status{color:#16a34a}body.dark .header-status{color:#22c55e;text-shadow:0 0 6px rgba(34,197,94,.6)}.header-brand{letter-spacing:.2em;opacity:.9}body.dark .header-brand{color:#c8dcffe6}body:not(.dark):not(.light) .header-bar,body:not(.dark):not(.light) .footer-container{opacity:0}.hotspot{position:absolute;cursor:pointer;z-index:30;border-radius:8px;transition:transform .15s ease,box-shadow .2s ease,outline-color .2s ease}.hotspot:after{content:"";position:absolute;inset:0;border-radius:inherit;background:#ffffff0f;opacity:0;transition:opacity .2s ease}.hotspot:hover:after{opacity:1}.hotspot:hover{outline:2px solid var(--hotspot-outline);border-radius:8px;box-shadow:0 0 18px var(--hotspot-glow);transform:scale(1.02);transition:all .2s ease}.hotspot:active{transform:scale(.98)}.hotspot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tooltip{position:relative}.tooltip:before{content:attr(data-tooltip);position:absolute;bottom:110%;left:50%;transform:translate(-50%);background:var(--bg);color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--border);opacity:0;transition:opacity .2s ease}.tooltip:hover:before,.tooltip:hover:after{opacity:1;transform:translate(-50%) translateY(-2px)}.intro-message{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center}.intro-window{background:#121212;border:1px solid #555;border-radius:6px;width:260px;font-family:monospace;box-shadow:0 8px 30px #0009;overflow:hidden}.intro-header{background:#0d0d0d;padding:6px 10px;font-size:12px;color:#80f0ff;border-bottom:1px solid #444}.intro-body{padding:10px 12px;font-size:12px;line-height:1.5;color:#f5f5f5;background:#0b0b0b}.intro-header,.intro-body{text-shadow:0 1px 2px rgba(0,0,0,.7)}.loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0a0a0a;pointer-events:auto;opacity:1;transition:opacity .3s ease;will-change:opacity;transform:translateZ(0)}.loader-content{text-align:center;font-family:monospace}.loader-title{font-size:24px;margin-bottom:20px;letter-spacing:2px;color:#fff;opacity:1}.loader-bar{width:200px;height:4px;background:#ffffff1a;margin:0 auto 12px;overflow:hidden}.loader-progress{height:100%;width:0%;background:#00ff9c}.loader-text{color:#aaa;font-size:12px;opacity:.8}.main-title{content-visibility:auto;contain-intrinsic-size:40px;font-size:24px;margin-bottom:20px;letter-spacing:2px;color:#fff}.modal-root{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--overlay);backdrop-filter:blur(12px);padding:20px;transition:opacity .25s ease}.modal-container{width:100%;max-width:1100px;height:85vh;max-height:900px;display:flex;flex-direction:column;background:var(--surface-primary);color:var(--content-primary);border:1px solid var(--border-default);border-radius:12px;overflow:hidden;box-shadow:0 20px 60px #0006;will-change:transform,opacity}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--surface-secondary);border-bottom:1px solid var(--border-default);font-size:13px}.modal-title{opacity:.7;font-size:12px}.modal-content{flex:1;overflow-y:auto;padding:20px;background:var(--surface-primary)}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px}.modal-in{animation:fadeIn .25s ease forwards}.modal-out{animation:fadeOut .25s ease forwards}.modal-content-in{animation:scaleIn .25s ease forwards}.modal-content-out{animation:scaleOut .25s ease forwards}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.96) translateY(10px)}}.monitor{width:100%;height:100%;position:relative;border:1px solid blue}.monitor-overlay{font-family:monospace;color:#8be9fd;background:#000c;border:2px solid;border-color:#3c424a;border-bottom-width:10px;border-radius:2px;box-shadow:0 20px 60px #0006;margin:0;padding:0;transition:transform .7s ease,opacity .7s ease;will-change:transform,opacity;cursor:pointer}#monitor-boot{width:95%;margin:0 auto;flex:1;display:flex;flex-direction:column;padding:4px;font-size:14px}.blink{animation:blink .25s infinite}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:0}}.monitor-off{animation:monitor-off .4s ease forwards}@keyframes monitor-off{0%{opacity:1}50%{transform:scaleY(.1)}to{opacity:0}}.crt:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.03) 0px,rgba(255,255,255,.03) 1px,transparent 2px,transparent 4px);mix-blend-mode:overlay}@keyframes glitchFlash{0%{opacity:0}10%{opacity:1;transform:translate(-2px)}20%{transform:translate(2px)}30%{transform:translate(-1px)}40%{transform:translate(1px)}to{opacity:0}}.glitch-on{animation:glitchFlash .4s ease}@keyframes crtOff{0%{transform:scaleY(1);opacity:1}60%{transform:scaleY(.05);opacity:1}to{transform:scaleY(0);opacity:0}}.crt-off{animation:crtOff .4s ease forwards;transform-origin:center}@keyframes crtOn{0%{transform:scaleY(0);opacity:0}60%{transform:scaleY(.05);opacity:1}to{transform:scaleY(1);opacity:1}}.crt-on{animation:crtOn .4s ease}.poster{position:absolute;top:8.3%;right:6.15%;width:14.25%;aspect-ratio:2 / 3;height:45%;overflow:hidden;z-index:5}.poster-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s ease}.poster .img{width:100%;height:100%;display:block}.poster .hover{position:absolute;top:0;left:0;opacity:0;width:100%;height:100%}#room{transform-origin:center}.room-camera{perspective:1200px;overflow:hidden}.room-scene{transform-origin:center;will-change:transform,filter,opacity}.room-container{position:relative;width:min(1376px,95vw);max-width:1376px;aspect-ratio:16/9;margin:0 auto;display:block;overflow:hidden;transform-style:preserve-3d;will-change:transform;transform:translateZ(0);pointer-events:none;z-index:20}.room-container:before{content:"";position:absolute;inset:0;background:#0a0a0a;z-index:0}.room-parallax{width:100%;height:100%;will-change:transform;transform:translateZ(0)}.room-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s ease-out,filter .3s ease;will-change:opacity,filter;backface-visibility:hidden;transform:translateZ(0);z-index:1;opacity:1}body.light .room-image{filter:brightness(1)}body.dark .room-image{filter:brightness(.85)}.room-container{position:relative;overflow:hidden;will-change:transform}.bg-video{position:absolute;inset:6% 0 0 31%;width:39%;height:56%;object-fit:cover;filter:blur(6px) brightness(.7);pointer-events:none;transition:opacity .6s ease;will-change:filter,opacity;backface-visibility:hidden;transform:translateZ(0);z-index:0}video{background:#000}.theme-overlay{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent,rgba(0,0,0,.4));opacity:0;z-index:3}.mouse-light{position:absolute;inset:0;z-index:30;pointer-events:none;mix-blend-mode:screen}.body-dark-layer,.body-light-layer{position:fixed;width:100%;height:100%;inset:0;pointer-events:none;transition:opacity .8s ease;z-index:-3}.body-dark-layer{position:fixed;inset:0;pointer-events:none;z-index:-3;background:radial-gradient(circle at 50% 40%,#3c5a8c40,#141e3299 40%,#05050af2),linear-gradient(to right,#000,#0f1722 40%,#152331);opacity:0;transition:opacity .8s ease,filter .8s ease}.body-dark-layer:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(0,255,150,.05),transparent 60%);mix-blend-mode:screen;pointer-events:none}.body-light-layer{position:fixed;inset:0;pointer-events:none;z-index:-3;background:radial-gradient(circle at 50% 30%,#fff9,#f5f7fa80 40%,#dce1eb66),linear-gradient(to right,#f9fafc,#eef1f6 50%,#e4e9f2);opacity:1;transition:opacity .8s ease,filter .8s ease}.grid-light,.grid-dark{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;background-size:70px 70px;transition:opacity .8s ease;z-index:-2}.grid-dark{background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);opacity:.6}.grid-light{background-image:linear-gradient(rgba(0,0,0,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.04) 1px,transparent 1px);opacity:.4}.content{z-index:30}.body-dark-layer,.body-light-layer{opacity:0}body.dark .body-dark-layer,body.light .body-light-layer{opacity:1}.content,.monitor,.poster,.hotspots{pointer-events:auto}body.modal-open{overflow:hidden}#portal-root{position:fixed;inset:0;z-index:9999;pointer-events:none}#portal-root>*{pointer-events:auto}.skills{display:flex;flex-direction:column;gap:30px;transition:all .3s ease}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.skills-block h3{font-weight:600;margin-bottom:6px}[data-theme=light] .skills{color:#111827}[data-theme=light] .skills-subtitle,[data-theme=light] .skills-footer{color:#6b7280}[data-theme=dark] .skills{color:#dce6ffe6}[data-theme=dark] .skills-subtitle{color:#b4c8ff99}[data-theme=dark] .skills-footer{color:#b4c8ff80}[data-theme=dark] .skills-block{transition:all .2s ease}[data-theme=dark] .skills-block:hover{transform:translate(4px);color:#67e8f9}.terminal{width:100%;height:100%;font-family:monospace;background:#0b0b0b;color:#00ff9c;line-height:1.6;letter-spacing:.5px;text-shadow:0 0 4px #00ff9c88;display:flex;flex-direction:column}.terminal-header{padding:6px 10px}.terminal-output{padding:10px;line-height:1.6}.terminal-input-line{display:flex;align-items:center;gap:6px;padding:6px 10px;border-top:1px solid rgba(0,255,150,.2)}.terminal-input-line input{flex:1;background:transparent;border:none;outline:none;color:#00ff9c;font-family:monospace}.terminal-input-line input::placeholder{color:#00ff964d}.btn-fullscreen{transition:transform .2s ease}.btn-fullscreen.active{transform:scale(.9)}.app-header{display:flex;justify-content:space-between;align-items:center;color:var(--text-primary);padding:16px;border-bottom:1px solid var(--border-color);backdrop-filter:blur(10px)}.app-header button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--card-bg);color:var(--text);font-size:.85rem;font-family:inherit;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease,box-shadow .2s ease}.app-header button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg-soft);box-shadow:0 0 10px var(--accent-glow)}.app-header button:active{transform:scale(.96)}.app-header button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[data-theme=dark] .app-header button{background:#141e3299;border:1px solid rgba(100,150,255,.2);color:#fff}[data-theme=dark] .app-header button:hover{border-color:#00c8ff99;box-shadow:0 0 8px #00c8ff4d}[data-theme=light] .app-header button{background:#fff;border:1px solid rgba(0,0,0,.1);color:#111}.app-header button span{display:inline-block;transition:transform .2s ease}.app-header button:hover span{transform:translate(-3px)}.app-content{max-width:1000px;margin:0 auto}#terminal-output::-webkit-scrollbar{width:6px}#terminal-output::-webkit-scrollbar-track{background:transparent}#terminal-output::-webkit-scrollbar-thumb{background:#00ff9c55;border-radius:10px}#terminal-output::-webkit-scrollbar-thumb:hover{background:#00ff9c}#terminal-output{scrollbar-width:thin;scrollbar-color:#00ff9c55 transparent}.vscode-container{display:flex;height:100vh;background:var(--vscode-editor-bg);color:var(--text);font-family:Fira Code,monospace}.vscode-sidebar{width:60px;background:var(--vscode-sidebar-bg);display:flex;flex-direction:column;align-items:center;padding:16px 0;gap:16px}.vscode-sidebar span{color:var(--vscode-text-muted);cursor:pointer;opacity:.6;transition:.2s}.vscode-sidebar span:hover{opacity:1}.vscode-explorer{width:220px;background:var(--vscode-sidebar-bg);padding:10px;font-size:13px}.vscode-explorer p{color:var(--vscode-text-muted)}.vscode-file{color:var(--text);padding:4px 8px;cursor:pointer;border-radius:4px}.vscode-file:hover{background:var(--vscode-hover)}.vscode-editor{flex:1;padding:20px;overflow-y:auto;position:relative}.vscode-close{position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6}.vscode-close:hover{opacity:1}.filter-btn{padding:4px 10px;font-size:12px;background:var(--card-bg);border-radius:4px;cursor:pointer;color:var(--text-secondary);border:1px solid var(--border)}.filter-btn.active{background:var(--accent);color:#fff}.project-card{cursor:pointer;border-radius:10px;overflow:hidden;background:var(--card-bg);border:1px solid var(--border);transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}.project-card:hover{transform:scale(1.02);box-shadow:0 10px 20px #0003}.project-card.featured{border:1px solid var(--accent)}.project-image{width:100%;aspect-ratio:16 / 9;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:contain;transition:transform .4s}.project-card:hover img{transform:scale(1.05)}.grid-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.tech{font-size:11px;background:var(--tag-bg);padding:4px 8px;border-radius:4px;color:var(--text-secondary)}.project-link{color:var(--text-muted);text-decoration:none;position:relative;transition:.2s}.project-link:hover{color:var(--text)}.project-link:after{content:"";position:absolute;left:0;bottom:-2px;width:0%;height:1px;background:var(--accent);transition:.3s}.project-link:hover:after{width:100%}.gallery-item{aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:var(--bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:zoom-in}.gallery-item img{width:100%;height:100%;object-fit:contain;transition:transform .4s}.gallery-item:hover img{transform:scale(1.05)}.project-detail-container{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;max-width:900px;color:var(--text)}.back-btn{font-size:12px;color:var(--color-text-secondary);cursor:pointer;transition:.2s}.back-btn:hover{color:var(--accent)}.project-header h1{font-size:28px;font-weight:700;color:var(--text)}.project-meta{font-size:12px;color:var(--text-secondary);display:flex;gap:8px}.project-description{color:var(--text-secondary);max-width:600px;line-height:1.6}.project-links{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}.project-stack{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.fade-in{animation:fadeIn .25s ease forwards}.fade-out{animation:fadeOut .2s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.98)}}.detail-enter{animation:slideIn .3s ease forwards}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.lightbox{position:fixed;inset:0;background:#000000d9;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:999;animation:fadeIn .25s ease}.lightbox-img{max-width:90%;max-height:85%;border-radius:10px;box-shadow:0 20px 40px #0009;animation:zoomIn .25s ease;cursor:zoom-out}@keyframes zoomIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:768px){.vscode-sidebar,.vscode-explorer{display:none}.vscode-container{flex-direction:column}.vscode-editor{padding:16px}.grid-projects{grid-template-columns:1fr;gap:16px}.project-card{border-radius:12px}.project-image{aspect-ratio:16 / 10}.project-card h3{font-size:16px}.vscode-close{position:fixed;top:12px;right:12px;background:var(--card-bg);padding:6px 10px;border-radius:6px;z-index:10}}
