body{margin:0}html{scroll-behavior:smooth}.portfolio .topbar{position:fixed;top:0;left:0;right:0;height:64px;z-index:50}.portfolio .topbar:before{content:"";position:absolute;inset:0;background:var(--topbar-bg);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);opacity:var(--topbar-bg-alpha,0);transition:opacity .3s ease;z-index:-1}.portfolio .topbar .bottom-border{position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--border-color);opacity:var(--border-alpha,0);transition:opacity .25s ease;pointer-events:none}.portfolio .topbar .inner{max-width:1200px;margin:0 auto;padding:0 24px;height:100%;display:flex;justify-content:space-between;align-items:center;grid-gap:24px;gap:24px}.portfolio .topbar .logo{font-size:1.5rem;font-weight:900;letter-spacing:-.05em;color:var(--on-surface);text-decoration:none}.portfolio .topbar nav{display:none;grid-gap:24px;gap:24px;margin-left:auto}@media(min-width:768px){.portfolio .topbar nav{display:flex}}.portfolio .topbar nav a{position:relative;font-size:.875rem;font-weight:700;color:var(--on-surface-variant);text-decoration:none;transition:color .2s;padding:6px 2px}.portfolio .topbar nav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:#c4973b;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;border-radius:2px}.portfolio .topbar nav a.active,.portfolio .topbar nav a:hover{color:#c4973b}.portfolio .topbar nav a.active:after{transform:scaleX(1)}.portfolio .topbar .theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9999px;border:1px solid var(--border-color);background:transparent;color:var(--on-surface);cursor:pointer;transition:background .2s,color .2s,transform .2s;margin-left:12px}.portfolio .topbar .theme-toggle .material-symbols-outlined{font-size:20px}.portfolio .topbar .theme-toggle:hover{background:var(--surface-high);color:#c4973b;transform:rotate(15deg)}@keyframes morph{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30% 60%}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.portfolio .hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;grid-gap:24px;gap:24px;padding-top:96px}.portfolio .hero .hero-item{animation:heroFadeUp .7s cubic-bezier(.16,1,.3,1) both}.portfolio .hero .blob-frame{width:12rem;height:12rem;overflow:hidden;border:8px solid var(--surface-high);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);background:#e8c97a;border-radius:60% 40% 30% 70%/60% 30% 70% 40%;animation:morph 8s ease-in-out infinite,heroFadeUp .7s cubic-bezier(.16,1,.3,1) both;margin-bottom:24px}@media(min-width:768px){.portfolio .hero .blob-frame{width:16rem;height:16rem}}.portfolio .hero .blob-frame img{width:100%;height:100%;object-fit:cover}.portfolio .hero .badge{display:inline-block;padding:4px 16px;background:#f5e0b0;color:#5a4208;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em}.portfolio .hero h1{font-size:clamp(2.25rem,6vw,4.5rem);font-weight:900;letter-spacing:-.025em;line-height:1;margin:24px 0;color:var(--on-surface);max-width:48rem}.portfolio .hero h1 .name{color:#c4973b;position:relative;display:inline-block;padding-bottom:6px}.portfolio .hero h1 .name:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:4px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='5'%3E%3Cpath d='M0 2.5q5-2.5 10 0t10 0 10 0 10 0' stroke='%23C4973B' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:repeat-x;background-size:40px 5px}.portfolio .hero .lead{font-size:1.125rem;color:var(--on-surface-variant);font-weight:500;max-width:48rem;margin:0 auto}@media(min-width:768px){.portfolio .hero .lead{font-size:1.25rem}}.portfolio .hero .actions{display:flex;flex-wrap:wrap;justify-content:center;grid-gap:24px;gap:24px;padding-top:24px}.portfolio .about .row{display:flex;flex-direction:column;grid-gap:80px;gap:80px;align-items:center;position:relative;z-index:1;width:100%}@media(min-width:768px){.portfolio .about .row{flex-direction:row;align-items:flex-start}}.portfolio .about .col{flex:1 1;width:100%}.portfolio .about .lead{font-size:1.125rem;color:var(--on-surface-variant);line-height:1.7}.portfolio .about .lead strong{color:#c4973b;font-weight:700}.portfolio .about .stack-group{margin-bottom:1.5rem}.portfolio .about .stack-group h4{font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.15em;color:#c4973b;margin:0 0 12px}.portfolio .about .stack-group .chips{display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px}.portfolio .about .chip{padding:4px 12px;background:var(--surface-highest);color:var(--on-surface-variant);font-size:.875rem;font-weight:700;border-radius:4px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.portfolio .about .chip:hover{transform:translateY(-5px) rotate(2deg)}@media(max-width:767px){.portfolio .experience{padding:24px 0}}.portfolio .experience .tl-list{position:relative;display:flex;flex-direction:column;width:100%}.portfolio .experience .tl-list:before{content:"";position:absolute;left:20px;top:14px;bottom:14px;width:2px;background:linear-gradient(180deg,#c4973b 0,rgba(196,151,59,.3) 70%,transparent);border-radius:2px}@media(max-width:767px){.portfolio .experience .tl-list:before{left:13px}}.portfolio .experience .tl-entry{display:grid;grid-template-columns:44px 1fr;grid-gap:0 16px;gap:0 16px;margin-bottom:24px}@media(max-width:767px){.portfolio .experience .tl-entry{grid-template-columns:30px 1fr;grid-gap:0 10px;gap:0 10px}}.portfolio .experience .tl-entry--dim{opacity:.72}.portfolio .experience .tl-dot-col{display:flex;justify-content:center;align-items:flex-start;padding-top:28px}.portfolio .experience .tl-dot{width:12px;height:12px;border-radius:50%;background:#c4973b;box-shadow:0 0 0 3px var(--bg),0 0 0 5px #c4973b,0 0 10px rgba(196,151,59,.3);flex-shrink:0;z-index:1;transition:box-shadow .3s}.portfolio .experience .tl-dot--dim{background:var(--surface-high);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--border-color)}.portfolio .experience .tl-entry:hover .tl-dot:not(.tl-dot--dim){box-shadow:0 0 0 3px var(--bg),0 0 0 5px #c4973b,0 0 20px rgba(196,151,59,.5)}.portfolio .experience .glass-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);padding:24px;border-radius:24px;transition:border-color .4s,transform .4s,box-shadow .4s}@media(min-width:768px){.portfolio .experience .glass-card{padding:48px}}.portfolio .experience .glass-card:hover{border-color:rgba(196,151,59,.35);transform:translateX(4px);box-shadow:0 16px 48px rgba(0,0,0,.2)}.portfolio .experience .glass-card .head{display:flex;flex-direction:column;grid-gap:6px;gap:6px;margin-bottom:6px}@media(min-width:768px){.portfolio .experience .glass-card .head{flex-direction:row;justify-content:space-between;align-items:flex-start}}.portfolio .experience .glass-card .head h3{font-size:1.1rem;font-weight:900;margin:0;color:var(--on-surface);letter-spacing:-.02em}@media(min-width:768px){.portfolio .experience .glass-card .head h3{font-size:1.35rem}}.portfolio .experience .glass-card .head .date{font-size:.75rem;font-weight:700;background:var(--surface-highest);color:var(--on-surface-variant);padding:4px 12px;border-radius:9999px;align-self:flex-start;flex-shrink:0;white-space:nowrap}.portfolio .experience .glass-card .company{color:#c4973b;font-size:.92rem;font-weight:700;margin:0 0 24px}.portfolio .experience .glass-card ul{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;grid-gap:12px;gap:12px}.portfolio .experience .glass-card ul li{display:flex;grid-gap:8px;gap:8px;align-items:flex-start;font-size:.9rem;color:var(--on-surface-variant);line-height:1.55}.portfolio .experience .glass-card ul li:before{content:"→";color:#c4973b;font-size:.72rem;flex-shrink:0;margin-top:3px}.portfolio .experience .glass-card .exp-tags{display:flex;flex-wrap:wrap;grid-gap:6px;gap:6px}.portfolio .experience .glass-card .exp-tag{padding:3px 10px;background:var(--surface-highest);color:var(--on-surface-variant);font-size:.7rem;font-weight:700;border-radius:4px}.portfolio .experience .tl-toggle-row{display:grid;grid-template-columns:44px 1fr;grid-gap:0 16px;gap:0 16px;margin-bottom:24px}@media(max-width:767px){.portfolio .experience .tl-toggle-row{grid-template-columns:30px 1fr;grid-gap:0 10px;gap:0 10px}}.portfolio .experience .tl-pip-col{display:flex;justify-content:center;align-items:center}.portfolio .experience .tl-toggle-pip{width:10px;height:10px;border-radius:50%;border:2px solid var(--outline-variant);background:transparent;z-index:1}.portfolio .experience .toggle-btn{display:flex;align-items:center;grid-gap:10px;gap:10px;width:100%;padding:14px 20px;background:transparent;border:2px dashed var(--outline-variant);border-radius:12px;cursor:pointer;color:var(--on-surface-variant);font-size:.83rem;font-weight:700;font-family:"Public Sans",sans-serif;transition:border-color .2s,color .2s;text-align:left}.portfolio .experience .toggle-btn:hover{border-color:#c4973b;color:#c4973b}.portfolio .experience .toggle-btn .toggle-arrow{display:inline-block;transition:transform .35s cubic-bezier(.4,0,.2,1);font-size:1rem;flex-shrink:0}.portfolio .experience .toggle-btn .toggle-arrow.open{transform:rotate(180deg)}.portfolio .experience .tl-older{overflow:hidden;max-height:0;transition:max-height .55s cubic-bezier(.4,0,.2,1)}.portfolio .experience .tl-older.open{max-height:2400px;overflow:visible}@keyframes fadeInCard{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.portfolio .projects{overflow-anchor:none}.portfolio .projects .head-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:80px;width:100%}.portfolio .projects .grid{display:grid;grid-template-columns:1fr;grid-gap:20px;gap:20px;width:100%}@media(min-width:768px){.portfolio .projects .grid{grid-template-columns:repeat(3,1fr);grid-gap:48px;gap:48px}}.portfolio .projects .card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:1.25rem;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.05);border:1px solid var(--border-color);transition:box-shadow .5s,transform .5s,border-color .5s}@media(min-width:768px){.portfolio .projects .card{border-radius:2rem}}.portfolio .projects .card:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.25);transform:translateY(-8px)}.portfolio .projects .card:hover img{transform:scale(1.1)}.portfolio .projects .card:hover .overlay{opacity:1}.portfolio .projects .card .cover{height:10rem;position:relative;overflow:hidden}@media(min-width:768px){.portfolio .projects .card .cover{height:14rem}}.portfolio .projects .card .cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.portfolio .projects .card .cover .ant-image{display:block;width:100%;height:100%}.portfolio .projects .card .cover .ant-image-placeholder{position:absolute;inset:0}.portfolio .projects .card .cover .ant-image-placeholder canvas{width:100%!important;height:100%!important}.portfolio .projects .card .cover .overlay{position:absolute;inset:0;background:rgba(196,151,59,.1);opacity:0;transition:opacity .5s}.portfolio .projects .card .body{padding:16px;display:flex;flex-direction:column;grid-gap:12px;gap:12px}@media(min-width:768px){.portfolio .projects .card .body{padding:24px;grid-gap:24px;gap:24px}}.portfolio .projects .card .body .row{display:flex;justify-content:space-between;align-items:flex-start}.portfolio .projects .card .body h3{font-size:1.125rem;font-weight:900;letter-spacing:-.025em;margin:0;color:var(--on-surface)}@media(min-width:768px){.portfolio .projects .card .body h3{font-size:1.5rem}}.portfolio .projects .card .body a.icon{color:var(--on-surface-variant);text-decoration:none}.portfolio .projects .card .body a.icon:hover{color:#c4973b}.portfolio .projects .card .body .desc{color:var(--on-surface-variant);font-weight:500;margin:0;line-height:1.4;cursor:pointer;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.portfolio .projects .card .body .desc.expanded{display:block;overflow:visible;cursor:default}.portfolio .projects .card .body .tags{display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px}.portfolio .projects .card .body .tag{padding:4px 12px;background:var(--surface-highest);color:var(--on-surface-variant);font-size:.75rem;font-weight:700;border-radius:9999px}.portfolio .projects .card.appear{animation:fadeInCard .4s ease forwards}.portfolio .projects .show-all-btn{height:44px;padding:0 24px;background:transparent;border:2px solid var(--outline-variant);color:var(--on-surface);border-radius:9999px;font-weight:700;font-size:.875rem;font-family:"Public Sans",sans-serif;cursor:pointer;transition:background .2s,border-color .2s,color .2s;white-space:nowrap;display:none;align-items:center}.portfolio .projects .show-all-btn:hover{background:var(--surface-high);border-color:#c4973b;color:#c4973b}.portfolio .projects .head-row .show-all-btn{align-self:flex-end}@media(min-width:768px){.portfolio .projects .head-row .show-all-btn{display:inline-flex}}.portfolio .projects .show-all-wrap{display:flex;justify-content:center;margin-top:24px}@media(min-width:768px){.portfolio .projects .show-all-wrap{display:none}}.portfolio .projects .show-all-wrap .show-all-btn{display:inline-flex}.portfolio .contact{text-align:center;align-items:center}.portfolio .contact .num{right:0;font-size:200px}.portfolio .contact h2{font-size:clamp(3.75rem,9vw,6rem);font-weight:900;letter-spacing:-.05em;margin:0 0 80px;color:var(--on-surface)}.portfolio .contact h2 .accent{color:#c4973b;font-style:italic}.portfolio .contact .lead{font-size:clamp(1.25rem,2.5vw,1.5rem);color:var(--on-surface-variant);font-weight:500;max-width:40rem;margin:0 auto 48px}.portfolio .contact .channels{display:flex;flex-direction:column;grid-gap:24px;gap:24px;max-width:56rem;margin:0 auto;width:100%}.portfolio .contact .email{display:flex;align-items:center;justify-content:center;grid-gap:24px;gap:24px;padding:20px 24px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:3rem;text-decoration:none;transition:background .5s,box-shadow .5s}@media(min-width:768px){.portfolio .contact .email{padding:32px;grid-gap:24px;gap:24px}}.portfolio .contact .email .material-symbols-outlined{font-size:1.5rem;color:#c4973b;transition:color .5s}@media(min-width:768px){.portfolio .contact .email .material-symbols-outlined{font-size:2.25rem}}.portfolio .contact .email span.label{font-size:clamp(1rem,3.5vw,3rem);font-weight:900;color:var(--on-surface);letter-spacing:-.025em;transition:color .5s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio .contact .email:hover{background:#c4973b;box-shadow:0 25px 50px -12px rgba(0,0,0,.25)}.portfolio .contact .email:hover .material-symbols-outlined,.portfolio .contact .email:hover span.label{color:#fff}.portfolio .contact .socials{display:flex;flex-direction:row;grid-gap:16px;gap:16px}@media(min-width:768px){.portfolio .contact .socials{grid-gap:24px;gap:24px}}.portfolio .contact .socials a{flex:1 1;display:flex;align-items:center;justify-content:center;grid-gap:10px;gap:10px;padding:20px 16px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:1.5rem;text-decoration:none;transition:all .5s}@media(min-width:768px){.portfolio .contact .socials a{grid-gap:16px;gap:16px;padding:32px;border-radius:2rem}}.portfolio .contact .socials a .social-icon{font-size:1.25rem;color:#c4973b;transition:color .5s}@media(min-width:768px){.portfolio .contact .socials a .social-icon{font-size:1.875rem}}.portfolio .contact .socials a span.label{font-size:1rem;font-weight:900;color:var(--on-surface);letter-spacing:-.025em;transition:color .5s}@media(min-width:768px){.portfolio .contact .socials a span.label{font-size:1.5rem}}.portfolio .contact .socials a.linkedin:hover{background:#0077b5}.portfolio .contact .socials a.linkedin:hover .social-icon,.portfolio .contact .socials a.linkedin:hover span.label{color:#fff}.portfolio .contact .socials a.github:hover{background:#333}.portfolio .contact .socials a.github:hover .social-icon,.portfolio .contact .socials a.github:hover span.label{color:#fff}.portfolio.theme-light{--bg:#f7f5f2;--surface:#fff;--surface-low:#f0ede8;--surface-high:#e8e4dc;--surface-highest:#dedad2;--surface-lowest:#fff;--on-surface:#1a1a1a;--on-surface-variant:#555;--outline-variant:rgba(0,0,0,0.15);--glass-bg:hsla(0,0%,100%,0.6);--topbar-bg:rgba(247,245,242,0.78);--border-color:rgba(0,0,0,0.08)}.portfolio.theme-dark{--bg:#141412;--surface:#1e1e1a;--surface-low:#242420;--surface-high:#2a2a25;--surface-highest:#302f2a;--surface-lowest:#111110;--on-surface:#f0ede8;--on-surface-variant:#a8a49e;--outline-variant:hsla(0,0%,100%,0.12);--glass-bg:rgba(30,30,26,0.55);--topbar-bg:rgba(20,20,18,0.82);--border-color:hsla(0,0%,100%,0.08)}.portfolio{isolation:isolate;font-family:"Public Sans",sans-serif;background:var(--bg);color:var(--on-surface);min-height:100vh;position:relative;overflow-x:clip;transition:background .4s ease,color .4s ease}.portfolio ::selection{background:#f5e0b0;color:#5a4208}.portfolio .material-symbols-outlined{font-family:"Material Symbols Outlined";font-weight:400;font-style:normal;font-size:24px;line-height:1;display:inline-block;vertical-align:middle;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;visibility:hidden}body.fonts-loaded .portfolio .material-symbols-outlined{visibility:visible}.portfolio .bg-decos{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.portfolio .bg-decos .deco{position:absolute;border-radius:9999px;filter:blur(90px);opacity:.75;will-change:transform}.portfolio .bg-decos .d1{top:2%;right:-4%;width:36rem;height:36rem;background:rgba(43,184,217,.28)}.portfolio .bg-decos .d2{top:22%;left:-6%;width:32rem;height:32rem;background:rgba(255,171,105,.25)}.portfolio .bg-decos .d3{top:45%;right:-2%;width:30rem;height:30rem;background:rgba(0,103,124,.2)}.portfolio .bg-decos .d4{top:68%;left:12%;width:36rem;height:36rem;background:rgba(43,184,217,.22)}.portfolio .bg-decos .d5{top:88%;right:6%;width:32rem;height:32rem;background:rgba(255,171,105,.22)}.portfolio main{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 24px}.portfolio .section-number{position:absolute;top:24px;font-size:160px;font-weight:900;opacity:.06;line-height:1;-webkit-user-select:none;user-select:none;color:var(--on-surface);pointer-events:none}.portfolio .eyebrow{color:#c4973b;font-weight:900;text-transform:uppercase;letter-spacing:.15em;font-size:.875rem;display:block;margin-bottom:24px}.portfolio section{position:relative;padding:80px 0;scroll-margin-top:80px}@media(min-width:768px){.portfolio section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:80px 0}}.portfolio .section-title{font-size:clamp(2.25rem,4vw,3rem);font-weight:900;line-height:1.1;color:var(--on-surface);margin:0 0 24px}.portfolio .section-title em{color:#8b6f14;font-style:italic}.portfolio .section-title .accent{color:#c4973b;font-style:italic}.portfolio .btn-primary{height:48px;padding:0 32px;display:inline-flex;align-items:center;background:#c4973b;color:#fff;border-radius:9999px;font-weight:700;text-decoration:none;transition:all .2s;border:none;cursor:pointer;font-family:inherit}.portfolio .btn-primary:hover{background:rgba(196,151,59,.9);box-shadow:0 20px 25px -5px rgba(0,0,0,.1);color:#fff}.portfolio .btn-outline{height:48px;padding:0 32px;display:inline-flex;align-items:center;grid-gap:4px;gap:4px;border:2px solid var(--outline-variant);color:var(--on-surface);background:transparent;border-radius:9999px;font-weight:700;text-decoration:none;transition:all .2s;font-family:inherit}.portfolio .btn-outline:hover{background:var(--surface-high);color:var(--on-surface)}
/*# sourceMappingURL=main.066c5302.chunk.css.map */