@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap";:root{--bg:#0a0a0a;--white:#f0ede6;--muted:#f0ede661;--border:#f0ede61a;--font:"Outfit", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background-color:var(--bg);color:var(--white);-webkit-font-smoothing:antialiased;cursor:none;line-height:1.6;overflow-x:hidden}a,button{cursor:none}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:800;line-height:1}.cursor-dot{background:var(--white);pointer-events:none;z-index:9999;border-radius:50%;width:8px;height:8px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-ring{pointer-events:none;z-index:9998;border:1.5px solid #f0ede68c;border-radius:50%;width:38px;height:38px;transition:width .3s,height .3s,border-color .3s,background .3s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-ring.hovered{border-color:var(--white);background:#f0ede612;width:68px;height:68px}.container{width:100%;max-width:1300px;margin:0 auto;padding:0 2.5rem}.section{padding:140px 0;position:relative}.section-label{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.8rem;margin-bottom:3.5rem;font-size:.68rem;font-weight:600;display:inline-flex}.section-label:before{content:"";background:var(--muted);flex-shrink:0;width:28px;height:1px;display:block}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#f0ede61f;border-radius:2px}.navbar{z-index:100;padding:1.5rem 2.5rem;position:fixed;top:0;left:0;right:0}.nav-inner{justify-content:space-between;align-items:center;max-width:1300px;margin:0 auto;display:flex}.nav-logo{letter-spacing:-.04em;color:var(--white);font-size:1.3rem;font-weight:900}.nav-logo-dot{color:#f0ede673}.nav-links{gap:2.5rem;display:flex}.nav-links a{letter-spacing:.15em;text-transform:uppercase;color:#f0ede680;font-size:.7rem;transition:color .25s}.nav-links a:hover{color:var(--white)}.nav-hire{letter-spacing:.12em;text-transform:uppercase;color:var(--white);border:1px solid var(--border);border-radius:50px;padding:.5rem 1.1rem;font-size:.7rem;transition:background .25s,border-color .25s}.nav-hire:hover{background:#f0ede614;border-color:#f0ede64d}@media (width<=600px){.nav-links,.nav-hire{display:none}}.hero-section{flex-direction:column;justify-content:space-between;min-height:100vh;padding:1.6rem 2.5rem 2rem;display:flex;position:relative;overflow:hidden}.hero-meta{letter-spacing:.18em;text-transform:uppercase;color:#f0ede661;justify-content:space-between;align-items:center;padding-top:5rem;font-size:.67rem;display:flex}.hero-meta-item{white-space:nowrap}.hero-center{flex-direction:column;align-items:center;gap:0;margin:auto 0;display:flex;position:relative}.hero-name-row{z-index:2;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.hero-letter{letter-spacing:-.03em;white-space:nowrap;color:var(--white);-webkit-user-select:none;user-select:none;cursor:none;will-change:transform;transform-origin:50%;font-size:clamp(5.5rem,14vw,13rem);font-weight:900;line-height:.9;transition:color .2s,text-shadow .2s;position:relative}.hero-letter.letter-outline{color:#0000;-webkit-text-stroke:1.5px #f0ede699}.hero-letter.letter-hovered:not(.letter-outline){color:#fff;text-shadow:0 0 20px #f0ede659,0 0 60px #f0ede626}.hero-letter.letter-outline.letter-hovered{-webkit-text-stroke-color:#f0ede6;text-shadow:0 0 30px #f0ede633,0 0 80px #f0ede614}.scramble-char{color:#f0ede64d;font-variant-numeric:tabular-nums}.scramble-char.letter-outline{color:#0000;-webkit-text-stroke-color:#f0ede640}.hero-role{letter-spacing:.16em;text-transform:uppercase;color:#f0ede666;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;font-size:.72rem;display:flex}.hero-bottom{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-end;padding-top:1.2rem;padding-bottom:.5rem;display:flex}.hero-cta{letter-spacing:.14em;text-transform:uppercase;color:#f0ede68c;align-items:center;gap:.6rem;font-size:.78rem;transition:color .3s,gap .3s;display:flex}.hero-cta:hover{color:var(--white);gap:1rem}.hero-cta-arrow{font-size:1rem;transition:transform .3s}.hero-cta:hover .hero-cta-arrow{transform:translate(4px)translateY(-2px)}.scroll-line{background:var(--border);width:1px;height:70px;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.scroll-line-inner{background:var(--white);width:100%;height:50%;animation:2s ease-in-out infinite scroll-drip}@keyframes scroll-drip{0%{transform:translateY(-100%)}to{transform:translateY(200%)}}@media (width<=700px){.hero-meta{flex-direction:column;align-items:flex-start;gap:.5rem}.hero-bottom{flex-direction:column;align-items:flex-start;gap:1rem}.hero-letter{font-size:clamp(3.5rem,18vw,6rem)}}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:6rem;display:grid}.about-statement p{letter-spacing:-.02em;color:var(--white);margin-bottom:1.5rem;font-size:clamp(1.4rem,2.8vw,2rem);font-weight:600;line-height:1.35}.about-sub{color:#f0ede673!important;letter-spacing:0!important;margin-bottom:0!important;font-size:.95rem!important;font-weight:400!important;line-height:1.8!important}.about-stats{flex-direction:column;gap:2rem;padding-top:.5rem;display:flex}.stat-item{border-top:1px solid var(--border);flex-direction:column;gap:.3rem;padding-top:1.2rem;display:flex}.stat-num{letter-spacing:-.04em;font-size:2.8rem;font-weight:800;line-height:1}.stat-label{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:.7rem}@media (width<=768px){.about-grid{grid-template-columns:1fr;gap:3rem}}.skills-marquee-wrapper{border-top:1px solid var(--border);border-bottom:1px solid var(--border);width:100%;margin-bottom:5rem;padding:1.2rem 0;overflow:hidden}.skills-marquee{gap:0;width:max-content;animation:28s linear infinite marquee-scroll;display:flex}.marquee-item{letter-spacing:.14em;text-transform:uppercase;color:#f0ede680;white-space:nowrap;align-items:center;gap:.6rem;padding:0 2rem;font-size:.75rem;display:inline-flex}.marquee-dot{color:#f0ede640;font-size:.5rem}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.skills-categories{flex-direction:column;display:flex}.skill-row{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:3rem;padding:1.6rem 0;display:flex}.skill-row:last-child{border-bottom:1px solid var(--border)}.skill-cat-label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex-shrink:0;min-width:160px;font-size:.7rem}.skill-tags{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.skill-tag{letter-spacing:.06em;border:1px solid var(--border);color:#f0ede699;border-radius:50px;padding:.35rem .9rem;font-size:.72rem;transition:border-color .25s,color .25s}.skill-tag:hover{color:var(--white);border-color:#f0ede659}@media (width<=600px){.skill-row{flex-direction:column;gap:1rem}.skill-tags{justify-content:flex-start}}.projects-section{overflow:visible}.projects-split{grid-template-columns:1fr 1fr;align-items:start;gap:5rem;display:grid}.projects-list{flex-direction:column;list-style:none;display:flex}.project-list-item{border-top:1px solid var(--border);cursor:none;align-items:flex-start;gap:1.2rem;padding:2rem 0;transition:border-color .3s;display:flex;position:relative}.projects-list li:last-child{border-bottom:1px solid var(--border)}.project-list-item.active,.project-list-item:hover{border-color:#f0ede640}.project-list-item:before{content:"";background:0 0;width:2px;transition:background .3s;position:absolute;top:0;bottom:0;left:0}.project-list-item.active:before,.project-list-item:hover:before{background:#f0ede680}.pli-index{letter-spacing:.12em;color:var(--muted);flex-shrink:0;padding-top:.25rem;font-size:.6rem}.pli-body{flex-direction:column;flex:1;gap:.6rem;display:flex}.pli-title{letter-spacing:-.02em;font-size:clamp(1.3rem,2.2vw,1.7rem);font-weight:800;line-height:1.1;transition:color .25s}.project-list-item:not(.active):not(:hover) .pli-title{color:#f0ede673}.pli-summary{color:#f0ede666;font-size:.82rem;line-height:1.6;display:none}.project-list-item.active .pli-summary,.project-list-item:hover .pli-summary{display:block}.pli-tech{flex-wrap:wrap;gap:.4rem;max-height:0;margin-top:.2rem;transition:max-height .3s;display:flex;overflow:hidden}.project-list-item.active .pli-tech,.project-list-item:hover .pli-tech{max-height:100px}.pli-pill{letter-spacing:.08em;text-transform:uppercase;color:#f0ede673;border:1px solid var(--border);border-radius:50px;padding:.2rem .65rem;font-size:.58rem}.pli-pill--more{color:#f0ede640}.pli-arrow{color:#f0ede633;flex-shrink:0;padding-top:.15rem;font-size:1rem;transition:color .25s,transform .25s}.project-list-item.active .pli-arrow,.project-list-item:hover .pli-arrow{color:var(--white);transform:translate(3px,-3px)}.projects-preview-wrap{flex-direction:column;gap:1.2rem;display:flex;position:sticky;top:8rem}.projects-preview-sticky{flex-direction:column;gap:1rem;display:flex}.preview-frame{aspect-ratio:4/3;border:1px solid var(--border);will-change:transform, opacity;border-radius:18px;width:100%;position:relative;overflow:hidden}.preview-screenshot{object-fit:cover;width:100%;height:100%;display:block}.preview-placeholder{flex-direction:column;justify-content:center;align-items:center;gap:.7rem;width:100%;height:100%;display:flex;position:relative}.ph-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(5,1fr);gap:1px;display:grid;position:absolute;inset:0}.ph-cell{background:var(--white);border-radius:2px}.ph-label{z-index:1;letter-spacing:-.01em;text-align:center;padding:0 1rem;font-size:1rem;font-weight:800;position:relative}.ph-hint{z-index:1;letter-spacing:.12em;text-transform:uppercase;color:#f0ede633;font-size:.58rem;position:relative}.preview-accent-bar{border-radius:18px 18px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.preview-meta{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0ab3;border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex;position:absolute;bottom:0;left:0;right:0}.preview-category,.preview-year{letter-spacing:.14em;text-transform:uppercase;color:#f0ede666;font-size:.6rem}.preview-open-btn{border:1px solid var(--border);color:#f0ede680;letter-spacing:.1em;text-transform:uppercase;cursor:none;font-size:.72rem;font-family:var(--font);background:0 0;border-radius:50px;justify-content:space-between;align-items:center;gap:.5rem;width:100%;padding:.75rem 1.2rem;transition:all .25s;display:flex}.preview-open-btn:hover{color:var(--white);background:#f0ede60a;border-color:#f0ede64d}@media (width<=900px){.projects-split{grid-template-columns:1fr;gap:3rem}.projects-preview-wrap{order:-1;position:static}}.pricing-intro{max-width:600px;margin-bottom:4rem}.pricing-headline{letter-spacing:-.03em;margin-bottom:1rem;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:900;line-height:1}.pricing-sub{color:#f0ede666;font-size:.9rem;line-height:1.7}.pricing-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:1.5rem;margin-bottom:2.5rem;display:grid}.pricing-card{border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:1.4rem;padding:2.2rem 2rem;transition:border-color .3s,transform .3s;display:flex;position:relative}.pricing-card:hover{border-color:#f0ede640;transform:translateY(-4px)}.pricing-card--featured{background:#f0ede60a;border-color:#f0ede659}.pricing-card--featured:hover{border-color:#f0ede699}.pricing-badge{background:var(--white);color:#0a0a0a;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-radius:50px;padding:.3rem .9rem;font-size:.62rem;font-weight:700;position:absolute;top:-13px;left:50%;transform:translate(-50%)}.pricing-meta{align-items:center;gap:.8rem;margin-bottom:.6rem;display:flex}.pricing-index{letter-spacing:.12em;color:var(--muted);font-size:.62rem}.pricing-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.pricing-name{letter-spacing:-.02em;font-size:1.6rem;font-weight:800}.pricing-price-block{border-top:1px solid var(--border);flex-direction:column;gap:.15rem;padding-top:1.2rem;display:flex}.pricing-unit{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.pricing-price{letter-spacing:-.03em;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:900;line-height:1}.pricing-desc{color:#f0ede673;font-size:.82rem;line-height:1.7}.pricing-features{flex-direction:column;flex:1;gap:.65rem;list-style:none;display:flex}.pricing-features li{color:#f0ede6a6;align-items:baseline;gap:.6rem;font-size:.8rem;display:flex}.pricing-check{color:#f0ede64d;flex-shrink:0;font-size:.5rem}.pricing-cta{letter-spacing:.1em;text-transform:uppercase;color:#f0ede680;border:1px solid var(--border);border-radius:50px;align-self:flex-start;align-items:center;gap:.5rem;margin-top:auto;padding:.7rem 1.4rem;font-size:.72rem;transition:all .25s;display:inline-flex}.pricing-cta:hover{color:var(--white);border-color:#f0ede659;gap:.9rem}.pricing-cta--primary{background:var(--white);color:#0a0a0a;border-color:var(--white)}.pricing-cta--primary:hover{color:#0a0a0a;background:#f0ede6e0;border-color:#0000}.pricing-note{letter-spacing:.06em;color:#f0ede638;text-align:center;border-top:1px solid var(--border);padding-top:2rem;font-size:.68rem}@media (width<=960px){.pricing-grid{grid-template-columns:1fr 1fr}.pricing-card:last-child{grid-column:1/-1}}@media (width<=600px){.pricing-grid{grid-template-columns:1fr}.pricing-card:last-child{grid-column:auto}}.contact-section{flex-direction:column;justify-content:space-between;min-height:85vh;padding-bottom:0;display:flex}.contact-headline{margin-bottom:5rem}.contact-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem;font-size:.7rem;display:block}.contact-cta-text{letter-spacing:-.03em;color:var(--white);font-size:clamp(3rem,8vw,7rem);font-weight:900;line-height:1}.contact-bottom{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding-top:2rem;display:flex}.contact-email{letter-spacing:-.01em;color:var(--white);align-items:center;gap:1rem;font-size:clamp(1rem,2.5vw,1.5rem);font-weight:600;transition:gap .3s,opacity .3s;display:flex}.contact-email:hover{opacity:.7;gap:1.5rem}.contact-socials{align-items:center;gap:1rem;display:flex}.social-link{letter-spacing:.1em;text-transform:uppercase;color:#f0ede673;align-items:center;gap:.4rem;font-size:.72rem;transition:color .25s;display:inline-flex}.social-link:hover{color:var(--white)}.social-sep{color:var(--border)}.site-footer{border-top:1px solid var(--border);margin-top:4rem;padding:1.5rem 0}.site-footer .container{letter-spacing:.1em;text-transform:uppercase;color:#f0ede640;justify-content:space-between;font-size:.65rem;display:flex}.detail-page{background:var(--bg);min-height:100vh;color:var(--white);padding:0 0 6rem}.detail-back{z-index:100;border:1px solid var(--border);color:#f0ede68c;letter-spacing:.1em;text-transform:uppercase;cursor:none;font-size:.72rem;font-family:var(--font);background:0 0;border-radius:50px;align-items:center;gap:.5rem;padding:.5rem 1rem;transition:color .25s,border-color .25s,background .25s;display:flex;position:fixed;top:2rem;left:2.5rem}.detail-back:hover{color:var(--white);background:#f0ede60d;border-color:#f0ede64d}.detail-container{flex-direction:column;gap:4rem;max-width:1100px;margin:0 auto;padding:8rem 2.5rem 0;display:flex}.detail-header{max-width:720px}.detail-meta{align-items:center;gap:1.2rem;margin-bottom:1.2rem;display:flex}.detail-category,.detail-year{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.68rem}.detail-title{letter-spacing:-.03em;font-size:clamp(2.5rem,6vw,5rem);font-weight:900;line-height:1}.detail-screenshot-wrapper{aspect-ratio:16/9;border:1px solid var(--border);border-radius:20px;width:100%;position:relative;overflow:hidden}.detail-screenshot-img{object-fit:cover;width:100%;height:100%;display:block}.detail-screenshot-placeholder{flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;display:flex;position:relative}.placeholder-rings{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.p-ring{opacity:.12;border:1px solid;border-radius:50%;animation:4s ease-in-out infinite ring-breathe;position:absolute}.r1{width:280px;height:280px}.r2{width:420px;height:420px;animation-delay:1s}@keyframes ring-breathe{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.2;transform:scale(1.04)}}.placeholder-name{z-index:1;letter-spacing:-.02em;font-size:1.4rem;font-weight:800;position:relative}.placeholder-hint{z-index:1;letter-spacing:.12em;text-transform:uppercase;color:#f0ede640;font-size:.68rem;position:relative}.detail-body{flex-direction:column;gap:3rem;display:flex}.detail-section{flex-direction:column;gap:1.2rem;display:flex}.detail-section-label{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.8rem;font-size:.65rem;display:flex}.detail-section-label:before{content:"";background:var(--muted);width:24px;height:1px;display:block}.detail-description{color:#f0ede6b3;max-width:700px;font-size:1.05rem;line-height:1.8}.detail-tech-grid{flex-wrap:wrap;gap:.6rem;display:flex}.detail-tech-pill{letter-spacing:.06em;border:1px solid var(--border);color:var(--accent,var(--white));border-radius:50px;padding:.5rem 1.1rem;font-size:.78rem;font-weight:600;transition:border-color .25s,background .25s}.detail-tech-pill:hover{background:#f0ede60d;border-color:#f0ede633}.detail-links{flex-wrap:wrap;align-items:center;flex-direction:row!important;gap:1rem!important}.detail-link{letter-spacing:.1em;text-transform:uppercase;color:#f0ede680;border:1px solid var(--border);border-radius:50px;align-items:center;gap:.6rem;padding:.75rem 1.5rem;font-size:.78rem;transition:all .25s;display:inline-flex}.detail-link:hover{color:var(--white);background:#f0ede60d;border-color:#f0ede64d}.detail-link--primary{background:var(--white);color:#0a0a0a;border-color:var(--white)}.detail-link--primary:hover{color:#0a0a0a;background:#f0ede6e0;border-color:#0000}.detail-notfound{min-height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:1rem;display:flex}.detail-notfound button{border:1px solid var(--border);color:var(--white);cursor:pointer;font-family:var(--font);background:0 0;border-radius:50px;padding:.5rem 1.2rem}@media (width<=600px){.detail-container{padding:7rem 1.5rem 0}.detail-back{top:1.2rem;left:1.2rem}}.app{background:var(--bg);min-height:100vh}
