@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;800&family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,700&family=Space+Mono&display=swap";:root{--bg-color: #050505;--text-main: #ffffff;--text-muted: rgba(255, 255, 255, .5);--accent: #00f2ea;--accent-alt: #ff0055;--card-bg: #0f0f0f;--glass: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .08);--font-main: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Playfair Display", serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-main);-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}.folio-app{position:relative;min-height:100vh}#app{max-width:1600px;margin:0 auto;padding:4rem 2rem}.monitor-scanlines{position:fixed;inset:0;background:linear-gradient(#12101000 50%,#0000001a 50%);background-size:100% 4px;pointer-events:none;z-index:1000;opacity:.15}.vignette{position:fixed;inset:0;background:radial-gradient(circle,transparent 40%,rgba(0,0,0,.9) 160%);pointer-events:none;z-index:1001}.hero{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:5rem;padding-bottom:2rem;border-bottom:1px solid var(--glass-border)}.header-left{display:flex;flex-direction:column;gap:.5rem}.logo{font-family:Playfair Display,serif;font-weight:700;font-size:5rem;letter-spacing:-.02em;color:var(--text-primary);line-height:1;position:relative;z-index:2}.logo-folio{background:linear-gradient(135deg,var(--text-primary) 0%,#aaa 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5));text-transform:uppercase;font-style:normal}.subtitle{font-family:Space Mono,monospace;font-size:.7rem;color:var(--accent);letter-spacing:.4em;text-transform:uppercase;opacity:.8}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:1.5rem}.stats{font-size:.7rem;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase}#image-count{font-size:1.2rem;color:#fff;font-weight:700;margin-right:.4rem}.filter-search-group{display:flex;gap:1rem}.premium-select,#search-input{background:var(--glass);border:1px solid var(--glass-border);padding:.9rem 1.5rem;border-radius:4px;color:#fff;font-family:var(--font-main);font-size:.8rem;letter-spacing:.05em;transition:all .3s cubic-bezier(.4,0,.2,1);outline:none}.premium-select:hover,#search-input:hover{background:#ffffff0f;border-color:#fff3}.premium-select:focus,#search-input:focus{background:#ffffff14;border-color:var(--accent);box-shadow:0 0 20px #00f2ea1a}.premium-select{cursor:pointer;min-width:180px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.2rem center}.search-container{width:300px}#search-input::placeholder{color:#fff3;text-transform:uppercase}.masonry-grid{display:flex;gap:2rem}.grid-column{flex:1;display:flex;flex-direction:column;gap:2rem}.portfolio-item{position:relative;background:var(--card-bg);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .5s cubic-bezier(.165,.84,.44,1);border:1px solid transparent}.portfolio-item:hover{transform:translateY(-8px) scale(1.01);border-color:var(--glass-border);box-shadow:0 30px 60px #00000080}.portfolio-image{width:100%;height:auto;display:block;transition:transform .8s cubic-bezier(.165,.84,.44,1)}.portfolio-item:hover .portfolio-image{transform:scale(1.08)}.item-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 60%);display:flex;flex-direction:column;justify-content:flex-end;padding:2.5rem 1.5rem;opacity:0;transition:opacity .4s ease}.portfolio-item:hover .item-overlay{opacity:1}.item-title{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:#fff;margin-bottom:.4rem;transform:translateY(10px);transition:transform .4s cubic-bezier(.165,.84,.44,1)}.portfolio-item:hover .item-title{transform:translateY(0)}.item-tech{font-family:Space Mono,monospace;font-size:.6rem;color:var(--accent);text-transform:uppercase;letter-spacing:.2em;transform:translateY(10px);transition:transform .4s cubic-bezier(.165,.84,.44,1) .1s}.portfolio-item:hover .item-tech{transform:translateY(0)}.lightbox{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10000;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:all .4s cubic-bezier(.165,.84,.44,1);cursor:zoom-out}.lightbox.active{opacity:1;pointer-events:all}.lightbox-wrapper{position:relative;max-width:90vw;max-height:90vh;display:flex;justify-content:center;align-items:center;cursor:default}.lightbox-image-container{position:relative;box-shadow:0 50px 100px #000000b3;border-radius:8px;overflow:hidden;background:#000;display:flex}.lightbox-img{max-width:90vw;max-height:85vh;object-fit:contain;display:block}.close-btn-top{position:fixed;top:2rem;right:2rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);color:#fff;width:44px;height:44px;border-radius:50%;font-size:1.5rem;display:flex;justify-content:center;align-items:center;cursor:pointer;z-index:10001;transition:all .3s}.close-btn-top:hover{background:var(--accent);color:#000;transform:rotate(90deg)}.preloader{position:fixed;inset:0;z-index:99999;background:#000;display:flex;justify-content:center;align-items:center;transition:opacity 1s cubic-bezier(.165,.84,.44,1)}.preloader.fade-out{opacity:0;pointer-events:none}.preloader-content{display:flex;flex-direction:column;align-items:center;gap:2rem}.character-reveal{position:relative;width:400px;height:400px;animation:float 4s ease-in-out infinite}.loader-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 30px rgba(0,242,234,.4))}.naruto-sprite-container{position:absolute;top:50%;left:-200px;transform:translateY(-50%);width:150px;height:150px;animation:naruto-run-across 3.5s linear infinite;z-index:100;pointer-events:none}.naruto-run-image{width:100%;height:100%;background-image:url(/naruto-sprite-cropped.png);background-repeat:no-repeat;background-size:300% 200%;animation:naruto-run-cycle .6s steps(1) infinite;filter:drop-shadow(0 0 10px rgba(255,100,0,.4))}@keyframes naruto-run-cycle{0%{background-position:0% 0%}5%{background-position:50% 0%}45%{background-position:100% 0%}50%{background-position:0% 100%}55%{background-position:50% 100%}95%{background-position:100% 100%}}@keyframes naruto-run-across{0%{left:-150px}to{left:100vw}}.loading-stats{text-align:center}.terminal-text{font-family:Space Mono,monospace;font-size:.7rem;color:var(--accent);letter-spacing:.3em;text-transform:uppercase;margin-bottom:1rem}.progress-track{width:300px;height:2px;background:#ffffff1a;position:relative;overflow:hidden}.progress-fill{position:absolute;height:100%;width:50%;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:progress-slide 2s infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes progress-slide{0%{left:-50%}to{left:100%}}.tag-chip{font-family:Space Mono,monospace;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.tag-chip:hover{transform:scale(1.05) translateY(-2px);box-shadow:0 10px 20px #0000004d}.loader-sentinel{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:#0006;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1000;pointer-events:none}@media(max-width:1200px){.logo{font-size:4rem}.masonry-grid,.grid-column{gap:1.5rem}}@media(max-width:900px){.hero{flex-direction:column;align-items:flex-start;gap:3rem}.header-right{align-items:flex-start;width:100%}.filter-search-group{width:100%;flex-direction:column}.search-container{width:100%}#popular-tags{justify-content:flex-start!important}.grid-column:last-child{display:none}}@media(max-width:600px){.logo{font-size:3rem}.grid-column:nth-child(2){display:none}}
