@import "https://fonts.googleapis.com/css2?family=Jersey+10&family=Jost:wght@300;400;500;600;700;800&display=swap";:root{color:#191919;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--pink:#fa9292;--pink-dark:#f27e83;--ink:#191919;--muted:#666;--surface:#f4f3f3;--white:#fff;--border:#dedede;--pixel-font:"Jersey 10", sans-serif;--body-font:"Jost", sans-serif;background:#fff;font-family:Jost,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{min-width:320px;margin:0}body,button,a{font-family:var(--body-font)}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app{--page:#fff;--text:#191919;--subtext:#565656;--panel:#f3f2f2;--line:#dedede;min-height:100vh;color:var(--text);background:var(--page);transition:background .25s,color .25s;overflow:clip}.app.dark{--page:#181717;--text:#f7f3f3;--subtext:#c5bdbd;--panel:#272424;--line:#454040}html,body{transition:background .25s}html.dark-root,html.dark-root body{background:#181717}.section{width:min(1300px,100% - 64px);margin-inline:auto}.header-container{z-index:1000;align-items:stretch;gap:28px;width:min(1380px,100% - 48px);height:62px;margin:10px auto 0;display:flex;position:sticky;top:25px}.site-header{color:#fff;background:#171717;border-radius:10px;flex:1;justify-content:space-between;align-items:center;min-width:0;height:100%;padding:8px 24px;transition:background .25s;display:flex;box-shadow:0 1px 3px #00000012}.app.dark .site-header,.app.dark .theme-toggle,.app.dark .menu-toggle{background:#272424}.app.dark .theme-toggle:hover,.app.dark .menu-toggle:hover{background:#3a3636}.brand-mark{font-family:var(--pixel-font);font-size:30px;display:none}.brand-mark span,.footer-logo span{color:var(--pink)}.nav-links{justify-content:flex-end;align-items:center;gap:clamp(24px,4.5vw,64px);width:100%;display:flex}.nav-links a{color:#fff;white-space:nowrap;padding:8px 0;font-size:20px;font-weight:700;transition:color .2s;position:relative}.nav-links a:first-child,.nav-links a:hover{color:var(--pink)}.header-actions{flex:none;align-items:stretch;gap:10px;height:100%;display:flex}.theme-toggle,.menu-toggle{color:#fff;background:#171717;border:none;border-radius:10px;flex:0 0 62px;place-items:center;width:62px;height:100%;font-size:34px;transition:background .2s;display:grid}.theme-toggle:hover,.menu-toggle:hover{background:#333}.menu-toggle{font-size:24px;display:none}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:15px;min-height:540px;padding-top:120px;padding-bottom:55px;display:grid}.hero-copy{z-index:2;padding-bottom:25px;position:relative}.eyebrow,.section-kicker{color:var(--pink-dark);letter-spacing:2px;margin:0 0 8px;font-size:11px;font-weight:800;display:block}.hero h1{font-family:var(--pixel-font);letter-spacing:-1px;margin:0;font-size:clamp(76px,10vw,132px);font-weight:400;line-height:.85}.hero h1 span{color:var(--pink)}.hero h2{margin:15px 0 10px;font-size:clamp(20px,2.4vw,28px);font-weight:500;line-height:1.25}.hero-description{color:var(--subtext);margin:0;font-size:20px;line-height:1.75}.primary-button,.contact-button{border:1px solid var(--ink);color:#fff;background:var(--ink);border-radius:4px;justify-content:center;align-items:center;gap:22px;margin-top:22px;padding:12px 20px;font-size:13px;font-weight:700;transition:transform .2s,background .25s,border-color .25s;display:inline-flex}.primary-button:hover,.contact-button:hover{background:#373737;transform:translateY(-3px)}.app.dark .primary-button,.app.dark .contact-button{background:#272424;border-color:#272424}.app.dark .primary-button:hover,.app.dark .contact-button:hover{background:#3a3636}.hero-visual{justify-content:center;align-self:stretch;align-items:flex-end;min-width:0;min-height:450px;display:flex;position:relative}.hero-image-switch{z-index:1;cursor:pointer;align-self:flex-end;place-items:end center;width:min(120%,560px);display:grid;position:relative}.hero-image-switch .hero-avatar{object-fit:contain;object-position:bottom;will-change:opacity, transform;backface-visibility:hidden;grid-area:1/1;width:100%;max-height:560px;transition:opacity .6s,transform .7s cubic-bezier(.34,1.56,.64,1);position:absolute;left:7%}.pixel-avatar{opacity:1;transform:scale(1)}.hero-image-switch:hover .pixel-avatar{opacity:0;transform:scale(1.1)}.real-avatar{opacity:0;transform:scale(.85)translateY(14px);left:11%!important}.hero-image-switch:hover .real-avatar{opacity:1;transform:scale(1)translateY(0)}.hero-image-switch:before{content:"";z-index:-1;opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 55%,#fa929299,#0000 65%);transition:opacity .6s,transform .7s cubic-bezier(.34,1.56,.64,1);position:absolute;inset:5% 0 0;transform:scale(.6)}.hero-image-switch:hover:before{opacity:1;transform:scale(1)}.hero-backdrop{background:var(--panel);border-radius:5px;height:100px;position:absolute;left:-15%;right:6%}.avatar-note{z-index:2;color:var(--pink-dark);font-size:12px;font-weight:600;position:absolute;bottom:-25px;right:15%}.floating-star{z-index:2;color:var(--pink);pointer-events:none;font-size:35px;position:absolute}.star-one{top:15%;right:2%}.star-two{font-size:24px;top:30%;left:2%}.section-heading h2{font-family:var(--pixel-font);color:var(--pink);margin:0;font-size:clamp(48px,6vw,72px);font-weight:400;line-height:1}.heading-period{color:var(--pink)}.section-heading>p{color:var(--subtext);margin:10px 0 0;font-size:20px}.section-heading.centered{text-align:center}.section-heading.centered .section-kicker,.section-heading:not(.centered) .section-kicker{margin-bottom:8px}.about{--p:0;padding-top:70px;padding-bottom:95px;position:relative}.about .section-heading,.about-copy,.skills{z-index:1;position:relative}.about-copy{text-align:center;max-width:810px;margin:34px auto 0}.about-copy p{color:var(--subtext);margin:0;font-size:20px;line-height:1.9}.about-copy p span{color:var(--pink-dark);font-style:italic;font-weight:600}.skills{text-align:center;margin-top:46px}.skills h3{color:var(--pink-dark);letter-spacing:1px;margin:0 0 20px;font-size:20px;font-weight:800}.skill-list{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.skill-tag{border:1px solid var(--text);border-radius:5px;padding:8px 13px;font-size:16px;font-weight:700;transition:color .2s,background .2s,border-color .2s}.skill-tag:hover{border-color:var(--pink);color:#fff;background:var(--pink)}.tech-icons{z-index:20;pointer-events:none;width:100vw;margin-left:calc(50% - 50vw);position:absolute;top:0;bottom:0;left:0}.tech-icon{width:78px;height:78px;left:calc(50% + (var(--x) - 50) * var(--p) * 1% + (1 - var(--p)) * var(--sx) * 1px + var(--cx) * 4 * var(--p) * (1 - var(--p)) * 1px);top:calc(50% + (var(--y) - 50) * var(--p) * 1% + (1 - var(--p)) * var(--sy) * 1px + var(--cy) * 4 * var(--p) * (1 - var(--p)) * 1px);translate:calc(var(--dx,0px) - 50%) calc(var(--dy,0px) - 50%);transform:rotate(calc(var(--sr) * (1 - var(--p)) * 1deg + var(--r) * var(--p) * 1deg)) scale(calc(.8 + var(--p) * .2));pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute}.tech-icon.dragging{z-index:5;cursor:grabbing}.tech-icon img{object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 6px #00000026);width:100%;height:100%;animation:icon-float var(--dur,6s) ease-in-out var(--delay,0s) infinite;transition:scale .15s;display:block}.tech-icon.dragging img{scale:1.15}@keyframes icon-float{0%,to{translate:0}25%{translate:calc(var(--p) * 8px) calc(var(--p) * -12px)}50%{translate:calc(var(--p) * -6px) calc(var(--p) * -4px)}75%{translate:calc(var(--p) * -10px) calc(var(--p) * 10px)}}.tech-icon:first-child{--dur:6s;--delay:0s}.tech-icon:nth-child(2){--dur:7.5s;--delay:-1.2s}.tech-icon:nth-child(3){--dur:5.5s;--delay:-2.4s}.tech-icon:nth-child(4){--dur:8s;--delay:-.6s}.tech-icon:nth-child(5){--dur:6.8s;--delay:-3.1s}.tech-icon:nth-child(6){--dur:5.8s;--delay:-1.8s}.tech-icon:nth-child(7){--dur:7.2s;--delay:-4s}.tech-icon:nth-child(8){--dur:6.4s;--delay:-2.9s}.fireflies{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.app>.section,.app>.site-footer{z-index:1;position:relative}.app>.about{z-index:2}.projects{padding-top:10px;padding-bottom:105px}.projects .section-heading>p{max-width:480px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:22px;margin-top:35px;display:grid}.project-card{border:1px solid var(--line);background:var(--panel);border-radius:7px;flex-direction:column;justify-self:center;width:100%;min-width:0;max-width:340px;min-height:365px;padding:18px;transition:transform .25s,box-shadow .25s;display:flex;overflow:hidden}.project-card:hover{transform:translateY(-7px);box-shadow:0 12px 28px #00000012}.project-topline{color:var(--subtext);letter-spacing:1px;justify-content:space-between;font-size:10px;font-weight:800;display:flex}.project-art{border-radius:5px;flex:1;place-items:center;min-height:190px;margin:18px 0;display:grid;overflow:hidden}.project-art span{font-family:var(--pixel-font);font-size:110px;transition:transform .25s}.project-card:hover .project-art span{transform:scale(1.15)rotate(-8deg)}.project-coral .project-art{color:#a72e39;background:#fac1c1}.project-blue .project-art{color:#fff;background:#688ebd}.project-orange .project-art{color:#fff;background:#d58b4a}.project-info{padding:4px 0}.project-category{color:var(--pink-dark);letter-spacing:.5px;font-size:11px;font-weight:800}.project-info h3{font-family:var(--pixel-font);margin:7px 0;font-size:36px;font-weight:400}.project-info p{color:var(--subtext);margin:0;font-size:13px;line-height:1.7}.project-grid{align-items:center;padding:30px 0 20px}.project-card{transition:rotate .4s cubic-bezier(.34,1.56,.64,1),translate .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s}.project-card:first-child{rotate:-4deg}.project-card:nth-child(2){z-index:2;translate:0 -30px;rotate:0deg}.project-card:nth-child(3){rotate:4deg}.project-card:hover{z-index:3;transform:rotate(0);box-shadow:0 18px 36px #00000026}.project-card:first-child:hover,.project-card:nth-child(3):hover{translate:0 -10px}.project-card:nth-child(2):hover{translate:0 -42px}.design-lab{padding-bottom:105px}.design-intro{grid-template-columns:auto 1fr;align-items:center;gap:30px;margin-bottom:30px;display:grid}.design-intro .section-heading h2{border-right:3px solid var(--pink);white-space:nowrap;padding-right:22px}.design-intro>p{max-width:570px;color:var(--subtext);margin:0;font-size:14px;line-height:1.8}.design-carousel{position:relative}.design-viewport{overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;padding:6px 0 10px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000)}.design-viewport::-webkit-scrollbar{display:none}.design-track{gap:22px;width:max-content;display:flex}.design-track .design-card{flex:0 0 clamp(270px,42vw,560px)}.design-arrow{z-index:3;color:#fff;opacity:0;background:#171717;border:none;border-radius:50%;place-items:center;width:46px;height:46px;font-size:22px;transition:opacity .2s,background .2s,transform .2s;display:grid;position:absolute;top:calc(50% - 45px)}.design-arrow.prev{left:-8px}.design-arrow.next{right:-8px}.design-carousel:hover .design-arrow{opacity:1}.design-arrow:hover{background:var(--pink-dark);transform:scale(1.08)}@media (hover:none){.design-arrow{opacity:1}}.design-card{border:1px solid var(--line);background:var(--page);border-radius:5px;min-width:0;overflow:hidden}.design-image-wrap{background:var(--panel);aspect-ratio:16/9;position:relative;overflow:hidden}.design-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.design-card:hover .design-image-wrap img{transform:scale(1.04)}.design-number{color:#fff;background:#171717d9;border-radius:3px;padding:6px 10px;font-size:11px;font-weight:700;position:absolute;bottom:12px;right:12px}.design-caption{justify-content:space-between;align-items:center;gap:15px;padding:16px;display:flex}.design-caption h3{margin:0;font-size:15px}.design-caption p{color:var(--subtext);margin:4px 0 0;font-size:12px}.design-caption>span{color:var(--pink-dark);font-size:22px}.design-footnote{color:var(--pink-dark);letter-spacing:2px;text-align:center;margin-top:25px;font-size:11px;font-weight:800}.contact{padding-bottom:100px}.contact-layout{align-items:center;min-height:365px;margin-top:30px;display:flex;position:relative}.contact-decoration{background:var(--panel);border-radius:5px;flex-direction:column;justify-content:space-between;width:32%;height:100%;padding:24px;display:flex;position:absolute;top:0;left:0}.contact-decoration>span{color:var(--pink);font-size:100px;line-height:1}.contact-decoration p{max-width:150px;color:var(--subtext);letter-spacing:1px;font-size:11px;font-weight:800;line-height:1.8}.contact-card{z-index:1;color:#231818;background:var(--pink);border-radius:6px;width:78%;min-height:280px;margin-left:auto;padding:clamp(25px,5vw,55px);position:relative}.contact-label{letter-spacing:2px;font-size:11px;font-weight:800}.contact-card h3{max-width:440px;font-family:var(--pixel-font);margin:12px 0;font-size:clamp(38px,5vw,62px);font-weight:400;line-height:.98}.contact-card p{max-width:440px;margin:0;font-size:14px;line-height:1.8}.contact-button{color:#fff;background:#191919;border-color:#191919;margin-top:20px}.rating-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:1.1fr 1fr;gap:40px;margin-top:50px;padding:clamp(24px,4vw,44px);display:grid}.rating-main h3{max-width:420px;font-family:var(--pixel-font);margin:4px 0 18px;font-size:clamp(34px,4.5vw,52px);font-weight:400;line-height:1}.star-row{gap:6px;display:flex}.star-btn{color:var(--line);background:0 0;border:none;padding:0;font-size:46px;line-height:1;transition:color .15s,transform .2s cubic-bezier(.34,1.56,.64,1)}.star-btn.on{color:var(--pink)}.star-btn:not(:disabled):hover{transform:scale(1.2)rotate(-8deg)}.star-btn:disabled{cursor:default}.rating-message{min-height:24px;color:var(--pink-dark);margin:14px 0 0;font-size:14px;font-weight:700}.rating-stats{border-left:1px solid var(--line);padding-left:40px}.rating-average{align-items:baseline;gap:8px;display:flex}.rating-average strong{font-family:var(--pixel-font);font-size:72px;font-weight:400;line-height:1}.rating-average span{color:var(--pink);font-size:34px}.rating-total{color:var(--subtext);margin:4px 0 16px;font-size:13px;font-weight:600}.rating-bars{gap:7px;display:grid}.rating-bar-row{color:var(--subtext);grid-template-columns:26px 1fr 28px;align-items:center;gap:10px;font-size:12px;font-weight:700;display:grid}.rating-bar{background:var(--line);border-radius:2px;height:8px;overflow:hidden}.rating-bar-fill{background:var(--pink);height:100%;transition:width .6s}.rating-count{text-align:right}.site-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;width:min(1380px,100% - 48px);margin:auto;padding:25px 0;display:flex}.footer-logo{font-family:var(--pixel-font);font-size:34px}.site-footer p{color:var(--subtext);text-align:center;font-size:12px}.back-to-top{letter-spacing:1px;font-size:10px;font-weight:800}@media (width>=1500px){.hero-description,.about-copy p{font-size:22px}}@media (width<=1100px){.nav-links{gap:clamp(18px,3vw,40px)}.nav-links a{font-size:18px}.project-info h3{font-size:30px}.contact-card{width:82%}}@media (width<=850px){.section{width:calc(100% - 40px)}.header-container{gap:14px;width:calc(100% - 32px)}.site-header{padding-left:18px;padding-right:18px}.nav-links{gap:22px}.nav-links a{font-size:15px}.hero{grid-template-columns:1.05fr .95fr;min-height:440px;padding-top:45px}.hero h1{font-size:clamp(65px,9vw,90px)}.hero-description{font-size:13px}.hero-visual{min-height:380px}.hero-image-switch{width:min(125%,440px)}.hero-image-switch .hero-avatar{max-height:400px}.about{padding-top:55px;padding-bottom:75px}.tech-icon{width:56px;height:56px}.project-grid{gap:12px}.project-card{min-height:325px;padding:12px}.project-art{min-height:150px}.project-card:first-child{rotate:-2deg}.project-card:nth-child(3){rotate:2deg}.project-card:nth-child(2){translate:0 -16px}.rating-card{gap:24px}.rating-stats{padding-left:24px}.design-intro{grid-template-columns:1fr;gap:15px}.design-intro .section-heading h2{width:fit-content}.contact-layout{min-height:330px}.contact-card{width:82%}.site-footer{width:calc(100% - 40px)}}@media (width<=600px){.section{width:calc(100% - 36px)}.header-container{gap:8px;width:calc(100% - 24px);height:50px;margin-top:6px;top:6px}.site-header{padding:5px 12px}.brand-mark{display:block}.header-actions{gap:6px}.theme-toggle,.menu-toggle{flex-basis:42px;width:42px;height:50px;font-size:25px}.menu-toggle{display:grid}.nav-links{background:#171717;border:1px solid #333;border-radius:8px;align-items:stretch;gap:0;width:auto;padding:8px 16px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0}.nav-links.nav-open{flex-direction:column;display:flex}.nav-links a{border-bottom:1px solid #ffffff20;padding:13px 8px;font-size:16px}.nav-links a:last-child{border-bottom:none}.hero{grid-template-columns:1fr;gap:15px;min-height:0;padding-top:65px;padding-bottom:45px}.hero-copy{padding-bottom:0}.eyebrow,.section-kicker{font-size:10px}.hero h1{font-size:clamp(76px,18vw,105px)}.hero h2{margin-top:12px;font-size:21px}.hero-description{max-width:480px;font-size:14px;line-height:1.8}.hero-visual{min-height:350px;margin-top:10px}.hero-image-switch{width:min(100%,360px)}.hero-image-switch .hero-avatar{max-height:350px}.hero-backdrop{height:85px;bottom:8px;left:0;right:0}.avatar-note{bottom:-8px;right:4px}.about{padding-top:60px;padding-bottom:65px}.section-heading h2{font-size:58px}.section-heading>p{font-size:20px}.about-copy{margin-top:25px}.about-copy p{font-size:15px;line-height:1.85}.skills{margin-top:35px}.skill-list{gap:9px}.skill-tag{padding:8px 10px;font-size:11px}.tech-icon{width:38px;height:38px}.projects{padding-top:10px;padding-bottom:70px}.project-grid{grid-template-columns:1fr;margin-top:25px;gap:40px!important}.project-card{min-height:350px;padding:16px}.project-card:nth-child(n){translate:0;rotate:0deg}.project-card:nth-child(odd){rotate:-1.5deg}.project-card:nth-child(2n){rotate:1.5deg}.rating-card{grid-template-columns:1fr;margin-top:35px}.rating-stats{border-top:1px solid var(--line);border-left:none;padding-top:22px;padding-left:0}.star-btn{font-size:40px}.project-art{min-height:190px}.project-info h3{font-size:38px}.design-lab{padding-bottom:70px}.design-intro{gap:18px}.design-intro .section-heading h2{padding-right:12px;font-size:clamp(42px,11vw,55px)}.design-intro>p{font-size:13px}.design-caption{padding:13px}.contact{padding-bottom:65px}.contact-layout{min-height:0;margin-top:25px;display:block}.contact-decoration{width:72%;height:150px;padding:12px;position:relative}.contact-decoration>span{font-size:55px}.contact-decoration p{margin:0;font-size:9px}.contact-card{width:94%;min-height:0;margin-top:-65px;margin-left:auto;padding:28px 22px}.contact-card h3{font-size:48px}.contact-card p{font-size:13px}.site-footer{flex-wrap:wrap;justify-content:space-between;gap:10px;width:calc(100% - 36px);padding:20px 0}.site-footer p{text-align:left;order:3;width:100%;margin:0}.back-to-top{font-size:9px}}@media (width<=760px){.project-grid{grid-template-columns:1fr;gap:18px;max-width:460px;margin:25px auto 0;padding-top:10px}.project-card{min-height:350px;padding:16px}.project-art{min-height:190px}.project-card:nth-child(n){translate:0;rotate:0deg}.project-card:nth-child(odd){rotate:-1.5deg}.project-card:nth-child(2n){rotate:1.5deg}.rating-card{grid-template-columns:1fr;margin-top:35px}.rating-stats{border-top:1px solid var(--line);border-left:none;padding-top:22px;padding-left:0}}@media (width<=600px){html{scroll-padding-top:70px}.hero-image-switch .hero-avatar,.real-avatar{left:0!important}.design-arrow{width:38px;height:38px;font-size:18px}.design-arrow.prev{left:-4px}.design-arrow.next{right:-4px}}@media (width<=400px){.section{width:calc(100% - 28px)}.hero h1{font-size:72px}.section-heading h2{font-size:48px}.skill-tag{padding:7px 9px;font-size:10px}.star-row{gap:2px}.star-btn{font-size:34px}.rating-main h3{font-size:30px}.rating-average strong{font-size:58px}.contact-card h3{font-size:40px}.design-track .design-card{flex-basis:82vw}.tech-icon{width:30px;height:30px}.site-footer p{font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.tech-icon img,.hero-image-switch:after{animation:none!important}.about{--p:1!important}}
