:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background-color:#fff}body{margin:0;padding:0;box-sizing:border-box}body{font-family:Fira Mono,Menlo,Monaco,Consolas,monospace;background-color:#fff}h1{font-size:1rem;margin:0}.container{display:flex;flex-direction:column;min-height:100vh}.top-nav{width:100vw;padding:.5rem 1rem;background-color:#fff;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.nav-desc{margin:0rem;font-size:.8rem;opacity:50%}.nav-left,.nav-right{display:flex;gap:1rem}.nav-left a,.nav-right a{color:#222;text-decoration:none;font-size:.8rem;transition:color .2s}.nav-left a:hover,.nav-right a:hover{text-decoration:underline}.nav-button{background:none;border:none;color:#222;text-decoration:none;font-size:.8rem;font-family:inherit;cursor:pointer;padding:0;transition:color .2s}.nav-button:hover{text-decoration:underline}.about-panel{position:fixed;top:0;right:0;width:25%;height:100vh;background-color:#fff;transform:translate(100%);transition:transform .3s ease;z-index:1002;overflow-y:auto;box-shadow:-2px 0 8px #0000001a}.about-panel.open{transform:translate(0)}.close-button{position:absolute;top:.5rem;right:1rem;background:none;border:none;color:#222;font-family:inherit;font-size:.8rem;cursor:pointer;padding:0;z-index:1003}.close-button:hover{text-decoration:underline}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0000004d;z-index:1001}p{font-size:.8rem}a{color:inherit;text-decoration:none}.floating-info{position:fixed;bottom:2rem;left:2rem;font-family:Fira Mono,Menlo,Monaco,Consolas,monospace;font-size:2.4rem;font-weight:700;padding:.2rem .4rem;color:#222;z-index:1001;letter-spacing:.05em}.floating-name,.floating-desc{background-color:#fff}.floating-contact{position:fixed;bottom:2rem;right:2rem;font-family:Fira Mono,Menlo,Monaco,Consolas,monospace;padding:.2rem .4rem;background-color:#fff;color:#222;z-index:1001;letter-spacing:.03em;display:flex;font-size:.8rem;gap:1rem}@media (max-width: 768px){.floating-info{bottom:1rem;right:1rem;font-size:.8rem;padding:.5rem .75rem}.about-panel{width:100%}.nav-button{font-size:.8rem}}@media (max-width: 480px){.floating-info{bottom:.75rem;right:.75rem;font-size:.7rem;padding:.4rem .6rem;letter-spacing:.02em}}@media (min-width: 768px){.container{height:100vh;overflow:hidden}.main-content{flex:1;overflow-y:auto;box-sizing:border-box}.nav-left a,.nav-right a{font-size:.8rem}.nav-left,.nav-right{gap:1.5rem}}.info-container{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:3rem 1.5rem 1rem;margin:0 auto;height:90vh;max-width:100%}.info-image{max-width:100%;width:100%;max-width:200px;display:block;margin:0 auto}.info-links{display:flex;font-size:.8rem;gap:1rem}.info-container p{text-align:center;line-height:1.5}.fish-link{width:100%;margin-top:1rem;text-align:center}.fish-link a{color:#222;text-decoration:none;font-size:.8rem;transition:color .2s}.fish-link a:hover{background:linear-gradient(90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);background-size:200% 100%;animation:rainbow 2s linear infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none}@media (min-width: 768px){.info-container{padding:3rem 2rem 2rem}.info-image{max-width:200px}}.projects-filters{display:flex;gap:.5rem;padding:0rem 1rem 0;flex-wrap:wrap}.filter-btn{font-family:inherit;font-size:.8rem;padding:.15rem .5rem;border:1px solid #e0e0e0;color:#222;outline:none;cursor:pointer;transition:background .2s,color .2s;box-sizing:border-box;min-width:1.5rem;min-height:1.5rem;line-height:1;margin:0;background-color:#fff}.filter-btn.active{color:#f5f5f5;background:#111;border-color:#222}.fade-in-card{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}.fade-in-card.visible{opacity:1;transform:translateY(0)}.projects-list{display:flex;flex-direction:column;gap:1rem;padding:1rem;align-items:stretch}.project-card{width:100%;cursor:pointer;display:flex;flex-direction:column;margin-bottom:.8rem}.project-card .cardInfo{display:flex;justify-content:space-between;width:100%}.project-card h1{font-size:.8rem;margin-bottom:.4rem}.project-card .project-tags{font-size:.8rem;text-align:left;margin:0}.thumb-container{position:relative;width:100%;height:440px;margin-bottom:1rem}.thumb-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f5f5f5;z-index:1}.project-thumb{position:relative;width:100%;height:100%;object-fit:cover;display:block;z-index:2}.project-thumb.loading{opacity:0}.project-thumb.loaded{opacity:1;transition:opacity .3s ease}@media (min-width: 768px){.projects-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,340px));gap:2rem;padding:1rem;justify-items:start;align-items:start}.project-card{width:340px;max-width:340px;min-width:320px;margin-bottom:.8rem}.thumb-container{height:400px}.projects-list.single,.projects-list.two{grid-template-columns:unset;max-width:unset;margin:0}}.project-detail{margin:0 auto;max-width:1000px}.project-title{font-size:.8rem;font-weight:600}.project-detail{padding:1rem}.media-container{position:relative;width:100%}.project-banner-container{margin-bottom:1rem;min-height:400px}.project-image-container{margin:0 auto 1rem;min-height:300px}.media-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f5f5f5;z-index:1}.project-image{position:relative;width:100%;z-index:2}.project-banner{position:relative;width:100%;display:block;z-index:2}.project-image.loading,.project-banner.loading{opacity:0}.project-image.loaded,.project-banner.loaded{opacity:1;transition:opacity .3s ease}.project-banner video,.project-image video{width:100%;height:auto;display:block;object-fit:cover}.project-detail-content{display:flex;flex-direction:column;gap:1.5rem;margin:1.5rem auto}.project-detail-left,.project-detail-right{margin:.8rem 0;width:100%;display:flex;flex-direction:column;gap:.8rem}.project-tags{font-size:.8rem;font-weight:200}.project-link{font-size:.8rem;font-weight:200;text-decoration:none}.project-year{font-size:.8rem;font-weight:200;margin:0}.project-description{margin:0}@media (min-width: 768px){.project-detail-content{flex-direction:row;gap:2rem}.project-detail-left{width:33%;max-width:300px}.project-detail-right{width:67%}}.fishing-game{width:600px;margin:2rem auto;overflow:hidden;border:1px solid #555;font-family:Fira Mono,Monaco,Consolas,monospace}.terminal-body{padding:1rem;height:450px;display:flex;flex-direction:column}.messages{flex:1;overflow-y:auto;margin-bottom:1rem;color:#32322f;font-size:.9rem;line-height:1.4;scroll-behavior:smooth}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:#333}.messages::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.message{margin-bottom:.3rem;white-space:pre-wrap;word-wrap:break-word}.input-line{display:flex;align-items:center;border:1px solid #555;padding:.5rem}.prompt{color:#32322f;font-weight:700;margin-right:.5rem;-webkit-user-select:none;user-select:none}.terminal-input{flex:1;background:transparent;border:none;outline:none;color:#32322f;font-family:inherit;font-size:.9rem}.terminal-input::placeholder{color:#666}.terminal-input:disabled{opacity:.6;cursor:not-allowed}.loading{color:#32322f;margin-left:.5rem;animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.game-stats{display:flex;gap:1rem;margin-top:1rem}.cash-display{background:#a5a49a;border:1px solid #555;border-radius:4px;padding:.5rem;color:#32322f;font-size:.8rem;font-weight:700;text-align:center;flex:1}.fish-counter{background:#a5a49a;border:1px solid #555;border-radius:4px;padding:.5rem;color:#32322f;font-size:.8rem;text-align:center;flex:1}@media (max-width: 768px){.fishing-game{width:calc(100% - 2rem);margin:1rem}.terminal-body{height:350px;padding:.75rem}.messages,.terminal-input,.terminal-title{font-size:.8rem}}.message:has-text("🎉"){color:#0f0;font-weight:700}.message:has-text("💔"){color:#ff6b6b}.message:has-text("🚨"){color:#ff0;animation:pulse .5s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.7}to{opacity:1}}.rarity-common{color:#4caf50}.rarity-uncommon{color:#2196f3}.rarity-rare{color:gold}.rarity-very_rare{color:#ff5722}.rarity-legendary{background:linear-gradient(90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);background-size:200% 100%;animation:rainbow 2s linear infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}@keyframes rainbow{0%{background-position:0% 0%}to{background-position:200% 0%}}.fishing-page-wrapper{width:100%;min-height:90vh;position:relative;z-index:0;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;box-sizing:border-box}
