*{box-sizing:border-box;margin:0;padding:0}::-webkit-scrollbar{width:24px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2050'%20width='24'%20height='50'%3e%3cdefs%3e%3clinearGradient%20id='metal'%20x1='0%25'%20y1='0%25'%20x2='100%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%23555'%20/%3e%3cstop%20offset='20%25'%20stop-color='%23999'%20/%3e%3cstop%20offset='50%25'%20stop-color='%23e0e0e0'%20/%3e%3cstop%20offset='80%25'%20stop-color='%23999'%20/%3e%3cstop%20offset='100%25'%20stop-color='%23444'%20/%3e%3c/linearGradient%3e%3clinearGradient%20id='metal-side'%20x1='0%25'%20y1='0%25'%20x2='100%25'%20y2='0%25'%3e%3cstop%20offset='0%25'%20stop-color='%23444'%20/%3e%3cstop%20offset='50%25'%20stop-color='%23aaa'%20/%3e%3cstop%20offset='100%25'%20stop-color='%23333'%20/%3e%3c/linearGradient%3e%3cfilter%20id='shadow'%20x='-20%25'%20y='-20%25'%20width='140%25'%20height='140%25'%3e%3cfeDropShadow%20dx='0'%20dy='2'%20stdDeviation='2'%20flood-color='%23000'%20flood-opacity='0.8'/%3e%3c/filter%3e%3c/defs%3e%3c!--%20Side%20link%20bottom%20half%20--%3e%3cpath%20d='M%209%2025%20L%2015%2025%20L%2015%2050%20L%209%2050%20Z'%20fill='url(%23metal-side)'%20filter='url(%23shadow)'/%3e%3c!--%20Front%20link%20--%3e%3crect%20x='4'%20y='2'%20width='16'%20height='26'%20rx='8'%20fill='none'%20stroke='url(%23metal)'%20stroke-width='4'%20filter='url(%23shadow)'/%3e%3c!--%20Side%20link%20top%20half%20(overlaps%20front%20link)%20--%3e%3cpath%20d='M%209%200%20L%2015%200%20L%2015%205%20Z'%20fill='url(%23metal-side)'%20filter='url(%23shadow)'/%3e%3cpath%20d='M%209%2023%20L%2015%2023%20L%2015%2028%20L%209%2028%20Z'%20fill='url(%23metal-side)'/%3e%3c/svg%3e");background-position:50%;background-repeat:repeat-y;background-size:100%}:root{--color-bg:#eae8e2;--color-text-primary:#1c1c1c;--color-text-secondary:#5d5d5d;--card-bg:#f4f4f5;--footer-bg:#f4f4f5;--border-color:#e5e5e5;--card-border:#0000000f;--card-shadow:#0000000f;--card-shadow-hover:#00000026;--blob-opacity:.4;--noise-opacity:.05;--nav-bg:#eae8e2d9;--font-serif:"Amiri", serif;--font-sans:"Poppins", sans-serif;--max-width:1400px;--padding-x:64px;--cursor-size:40px;--cursor-dot-size:6px}[data-theme=dark]{--color-bg:#0a0a0d;--color-text-primary:#f0f0f4;--color-text-secondary:#8e8e9e;--card-bg:#14141a;--footer-bg:#121217;--border-color:#ffffff1a;--card-border:#ffffff14;--card-shadow:#0009;--card-shadow-hover:#ffffff1a;--blob-opacity:.18;--noise-opacity:.07;--nav-bg:#0a0a0dd9}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:none;transition:background-color .6s cubic-bezier(.16,1,.3,1),color .6s cubic-bezier(.16,1,.3,1)}.theme-toggle-btn{border:1px solid var(--card-border);cursor:pointer;width:36px;height:36px;color:var(--color-text-primary);background:#0000000d;border-radius:50%;justify-content:center;align-items:center;margin-left:8px;transition:background-color .4s,border-color .4s,transform .3s;display:inline-flex;position:relative;overflow:hidden}[data-theme=dark] .theme-toggle-btn{background:#ffffff14}.theme-toggle-btn:hover{transform:scale(1.08)}.theme-toggle-btn svg{width:18px;height:18px;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .4s;position:absolute}.sun-icon{opacity:1;transform:rotate(0)scale(1)}.moon-icon{opacity:0;transform:rotate(-90deg)scale(.5)}[data-theme=dark] .sun-icon{opacity:0;transform:rotate(90deg)scale(.5)}[data-theme=dark] .moon-icon{opacity:1;transform:rotate(0)scale(1)}.noise-overlay{pointer-events:none;z-index:9999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}.cursor-ring{width:var(--cursor-size);height:var(--cursor-size);border:1px solid var(--color-text-primary);pointer-events:none;z-index:10000;mix-blend-mode:difference;border-color:#fff;border-radius:50%;transition:transform .15s ease-out,background-color .3s,border-color .3s,width .3s,height .3s;position:fixed;transform:translate(-50%,-50%)}.cursor-dot{width:var(--cursor-dot-size);height:var(--cursor-dot-size);background-color:var(--color-text-primary);pointer-events:none;z-index:10000;mix-blend-mode:difference;background-color:#fff;border-radius:50%;position:fixed;transform:translate(-50%,-50%)}.bg-blobs{z-index:-1;filter:blur(100px);opacity:.4;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.blob{background:linear-gradient(135deg,#f0f0f0 0%,#e0e0e0 100%);border-radius:50%;animation:20s cubic-bezier(.45,0,.55,1) infinite alternate blob-float;position:absolute}.blob-1{background:radial-gradient(circle,#0000000d 0%,#fff0 70%);width:600px;height:600px;top:-100px;right:-100px}.blob-2{background:radial-gradient(circle,#00000008 0%,#fff0 70%);width:500px;height:500px;animation-delay:-5s;bottom:-150px;left:-100px}.blob-3{background:radial-gradient(circle,#00000005 0%,#fff0 70%);width:400px;height:400px;animation-delay:-12s;top:40%;left:20%}@keyframes blob-float{0%{transform:translate(0)rotate(0)scale(1)}33%{transform:translate(100px,50px)rotate(120deg)scale(1.1)}66%{transform:translate(-50px,100px)rotate(240deg)scale(.9)}to{transform:translate(0)rotate(360deg)scale(1)}}@media (width<=768px){body{cursor:auto}.cursor-ring,.cursor-dot{display:none}}#app{width:100%;max-width:var(--max-width);margin:0 auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400}a{color:inherit;text-decoration:none;transition:all .3s}img{max-width:100%;display:block}.navbar{background-color:var(--nav-bg);-webkit-backdrop-filter:blur(12px);z-index:100;width:100%;padding:30px var(--padding-x);transition:background-color .5s,padding .3s;position:fixed;top:0;left:0}.nav-container{max-width:var(--max-width);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-logo{font-family:var(--font-serif);letter-spacing:-.5px;font-size:24px;font-weight:700}.nav-links{align-items:center;gap:32px;display:flex}.nav-links a{letter-spacing:1px;font-size:15px;font-weight:600}.nav-links a:hover{opacity:.6}@media (width<=768px){:root{--padding-x:20px}.navbar{padding:16px var(--padding-x)}.nav-logo{font-size:18px}.nav-links{align-items:center;gap:14px;display:flex}.nav-links a{letter-spacing:.5px;font-size:12px}.theme-toggle-btn{width:36px;height:36px;margin-left:4px}.theme-toggle-btn svg{width:15px;height:15px}}.hero{text-align:center;justify-content:center;align-items:center;min-height:100vh;padding-top:100px;display:flex}.hero-title{font-family:var(--font-serif);letter-spacing:-2px;perspective:1000px;cursor:pointer;margin-bottom:24px;font-size:min(10vw,120px);font-weight:400;line-height:1.1;display:inline-block}.coin-inner{width:100%;height:1.1em;transform-style:preserve-3d;justify-content:center;align-items:center;transition:transform .8s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.hero-title.flipped .coin-inner{transform:rotateY(180deg)}.coin-front{backface-visibility:hidden;white-space:nowrap;justify-content:center;align-items:center;width:auto;height:100%;display:flex;position:relative}.coin-back{backface-visibility:hidden;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0;transform:rotateY(180deg)}.coin-back img{object-fit:cover;border-radius:50%;width:1em;height:1em;box-shadow:0 10px 30px #0003}.hero-subtitle{font-family:var(--font-sans);color:var(--color-text-secondary);letter-spacing:.5px;font-size:18px;font-weight:400}@media (width<=768px){.hero-title{letter-spacing:-1px;font-size:64px}}.work-section{padding:100px var(--padding-x)}.work-filter-bar{flex-wrap:wrap;gap:16px;margin-bottom:56px;display:flex}.filter-btn{background:var(--card-bg);color:var(--color-text-primary);border:1px solid var(--card-border);font-family:var(--font-sans);letter-spacing:1px;cursor:pointer;border-radius:30px;padding:12px 24px;font-size:12px;font-weight:600;transition:all .3s}.filter-btn:hover{border-color:var(--color-text-primary);transform:translateY(-2px)}.filter-btn.active{background:var(--color-text-primary);color:var(--color-bg);border-color:var(--color-text-primary)}.work-subsection{transition:opacity .4s,transform .4s}.projects-grid{grid-template-columns:repeat(3,1fr);gap:40px;display:grid}.project-card{color:var(--color-text-primary);flex-direction:column;text-decoration:none;transition:transform .3s;display:flex}.project-card:hover .project-image{box-shadow:var(--card-shadow-hover);transform:translateY(-8px)}.project-image{aspect-ratio:1;background-color:var(--card-bg);width:100%;box-shadow:var(--card-shadow);border:1px solid var(--card-border);border-radius:8px;margin-bottom:24px;transition:all .5s cubic-bezier(.16,1,.3,1);overflow:hidden}.project-image img.screenshot-img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .8s cubic-bezier(.16,1,.3,1)}.project-image img.logo-fit{object-fit:contain;background-color:#fff;padding:16px}.project-card:hover img.screenshot-img,.project-card:hover img.logo-fit{transform:scale(1.04)}.project-title{font-family:var(--font-serif);margin-bottom:8px;font-size:32px;font-weight:400}.project-category{font-family:var(--font-sans);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:14px}@media (width<=1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.projects-grid{grid-template-columns:1fr}.project-title{font-size:28px}}.section-title{font-family:var(--font-sans);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:2px;margin-bottom:32px;font-size:14px;font-weight:400}.about-section{padding:100px var(--padding-x)}.about-split{justify-content:space-between;gap:80px;margin-bottom:120px;display:flex}.about-left{flex:1}.about-text{max-width:800px;font-size:24px;font-weight:400;line-height:1.6}.about-right{flex-direction:column;gap:40px;min-width:200px;display:flex}.stat-box{flex-direction:column;display:flex}.stat-number{font-size:64px;font-family:var(--font-sans);margin-bottom:8px;font-weight:600;line-height:1}.stat-label{color:var(--color-text-secondary);font-size:14px}@media (width<=768px){.about-split{flex-direction:column;gap:40px}.about-text{font-size:20px}}.experience-section{margin-top:60px}.experience-list{border-top:1px solid var(--border-color);flex-direction:column;gap:0;transition:border-color .5s;display:flex}.experience-item{border-bottom:1px solid var(--border-color);grid-template-columns:200px 1fr 200px;align-items:center;padding:32px 0;transition:border-color .5s;display:grid}.exp-year,.exp-company{font-family:var(--font-sans);color:var(--color-text-secondary);font-size:15px}.exp-role{font-family:var(--font-serif);color:var(--color-text-primary);font-size:28px;font-weight:400}.exp-company{text-align:right}@media (width<=768px){.experience-item{grid-template-columns:1fr;gap:16px;padding:24px 0}.exp-company{text-align:left}}.footer-section{padding:120px var(--padding-x) 40px;background-color:var(--footer-bg);transition:background-color .5s cubic-bezier(.16,1,.3,1)}.quote-block{text-align:center;max-width:800px;margin:0 auto 120px}.quote-text{font-family:var(--font-serif);color:var(--color-text-primary);font-size:min(6vw,64px);font-weight:400;line-height:1.2}.footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-top:40px;transition:border-color .5s;display:flex}.footer-links{gap:24px;display:flex}.footer-links a,.footer-copy{color:var(--color-text-primary);letter-spacing:1px;font-size:13px;font-weight:600}.footer-copy{color:var(--color-text-secondary);font-weight:400}@media (width<=768px){.footer{flex-direction:column;align-items:flex-start;gap:24px}}.fade-up-element{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(40px)}.fade-up-element.visible{opacity:1;transform:translateY(0)}.project-card:nth-child(2).fade-up-element{transition-delay:.1s}.project-card:nth-child(3).fade-up-element{transition-delay:.2s}
