@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,700;0,9..144,900;1,9..144,700&family=Montserrat:wght@400;500;600;700&display=swap";:root{--green:#3f5b3b;--green-deep:#2d4430;--matcha:#b9d28f;--cream:#fdeff3;--cream-soft:#fff8fa;--yellow:#f68fb5;--orange:#e0457f;--black:#16251a;--ink:#22301f;--g-green:linear-gradient(135deg, #2d4430 0%, #3f5b3b 45%, #7a6a74 100%);--g-hero:linear-gradient(135deg, #2d4430 0%, #3f5b3b 40%, #b0577f 100%);--g-pink:linear-gradient(135deg, #f9b3cc 0%, #f68fb5 50%, #e0457f 100%);--g-matcha-pink:linear-gradient(120deg, #b9d28f 0%, #f9b3cc 100%);--g-dark:linear-gradient(135deg, #16251a 0%, #2d4430 55%, #5b2a43 100%);--g-soft:linear-gradient(160deg, #fdeff3 0%, #eef5e0 100%);--display:"Fraunces", Georgia, serif;--body:"Montserrat", system-ui, sans-serif;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--body);background:var(--cream);color:var(--ink);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}ul{list-style:none}button,input,textarea{font:inherit}section{scroll-margin-top:70px;position:relative}::selection{background:var(--yellow);color:var(--black)}.wrap{width:min(1180px,100% - 3rem);margin-inline:auto}.display{font-family:var(--display);letter-spacing:-.02em;font-weight:900;line-height:.95}.progress{background:var(--g-pink);transform-origin:0;z-index:100;height:3px;position:fixed;top:0;left:0;right:0}.nav{z-index:90;height:70px;color:var(--cream);align-items:center;transition:background .3s,box-shadow .3s,color .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#243a2aeb;box-shadow:0 6px 24px #0003}.nav .wrap{justify-content:space-between;align-items:center;display:flex}.logo{font-family:var(--display);align-items:center;gap:.5rem;font-size:1.3rem;font-weight:700;display:flex}.logo .spark{color:var(--orange);transition:transform .6s var(--ease);display:inline-block}.logo:hover .spark{transform:rotate(180deg)scale(1.2)}.nav-links{align-items:center;gap:2rem;font-size:.85rem;font-weight:600;display:flex}.nav-links a:not(.pill){padding:.25rem 0;position:relative}.nav-links a:not(.pill):after{content:"";background:var(--yellow);transform-origin:100%;width:100%;height:2px;transition:transform .35s var(--ease);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-links a:not(.pill):hover:after{transform-origin:0;transform:scaleX(1)}.pill{cursor:pointer;background:var(--g-pink);color:var(--black);transition:transform .3s var(--ease), box-shadow .3s, background .3s, color .3s;border:0;border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1.3rem;font-size:.85rem;font-weight:700;display:inline-flex}.pill:hover{transform:translateY(-3px)scale(1.04);box-shadow:0 10px 22px #0003}.pill.orange{background:var(--orange);color:#fff}.pill.dark{background:var(--black);color:var(--cream)}.pill.dark:hover{background:var(--yellow);color:var(--black)}.ph{text-align:center;border-radius:inherit;opacity:.55;letter-spacing:.12em;text-transform:uppercase;background:repeating-linear-gradient(45deg,#0000 0 14px,#ffffff0d 14px 28px);border:2px dashed;justify-content:center;align-items:center;width:100%;height:100%;font-size:.75rem;font-weight:600;display:flex;position:relative}.hero{background:var(--g-hero);color:var(--cream);flex-direction:column;min-height:100vh;padding-top:110px;display:flex;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";filter:blur(80px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.hero:before{background:var(--yellow);opacity:.22;width:420px;height:420px;animation:9s ease-in-out infinite float;top:80px;right:-120px}.hero:after{background:var(--matcha);opacity:.22;width:380px;height:380px;animation:11s ease-in-out infinite reverse float;bottom:120px;left:-140px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(30px)}}.hero-stage{flex:1;min-height:560px;position:relative}.hero-head{z-index:3;position:absolute;top:0;left:36%;right:0}.title-stack{height:2.5em;font-size:clamp(2.8rem,8.2vw,7rem);position:relative}.hero-title{z-index:3;color:var(--cream);white-space:nowrap;font-size:1em;position:absolute;top:0;left:0}.echo{color:#0000;-webkit-text-stroke:1.5px var(--yellow);white-space:nowrap;z-index:1;transition:transform .5s var(--ease), opacity .5s;font-size:1em;line-height:.95;position:absolute;left:0}.echo.e1{height:.5em;top:.95em;overflow:hidden}.echo.e2{opacity:.7;height:.5em;top:1.4em;overflow:hidden}.echo.e3{opacity:.4;height:.5em;top:1.85em;overflow:hidden}.hero-stage:hover .echo.e1{transform:translate(10px)}.hero-stage:hover .echo.e2{transform:translate(20px)}.hero-stage:hover .echo.e3{transform:translate(30px)}.hero-photo{z-index:2;aspect-ratio:3/4;background:var(--orange);color:#fff;width:min(340px,40vw);transition:transform .5s var(--ease), box-shadow .5s;border-radius:6px;position:absolute;top:4vw;left:0}.hero-photo:hover{transform:rotate(-2deg)scale(1.03);box-shadow:0 30px 60px #0006}.hero-caption{z-index:4;background:var(--black);max-width:340px;padding:.7rem 1rem;font-size:.68rem;line-height:1.4;position:absolute;bottom:0;left:0}.hero-info{z-index:4;border-left:3px solid var(--yellow);justify-items:start;gap:.4rem;margin-top:1rem;padding-left:1rem;font-size:.95rem;font-weight:500;display:grid;position:relative}.hero-info a{transition:color .25s,transform .25s;display:inline-block}.hero-info a:hover{color:var(--yellow);transform:translate(8px)}.sparkle{color:var(--yellow);z-index:5;font-size:2.2rem;animation:3s ease-in-out infinite twinkle;position:absolute}@keyframes twinkle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.35)rotate(25deg)}}.hero-bar{background:var(--g-dark);height:110px;position:relative}.scroll-btn{background:var(--yellow);width:100px;height:100px;color:var(--black);text-align:center;z-index:6;cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:.85rem;font-weight:600;line-height:1.2;transition:background .3s,color .3s;animation:2.2s ease-in-out infinite bob;display:grid;position:absolute;top:-50px;right:18%}.scroll-btn:hover{background:var(--orange);color:#fff}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.marquee{background:var(--g-matcha-pink);color:var(--green-deep);white-space:nowrap;padding:.9rem 0;overflow:hidden}.marquee-track{font-family:var(--display);gap:2.5rem;font-size:1.3rem;font-weight:700;animation:28s linear infinite slide;display:inline-flex}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes slide{to{transform:translate(-50%)}}.about{background:var(--g-soft);padding:7rem 0}.about-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:4rem;display:grid}.about h2,.skills h2{background:linear-gradient(100deg,#2d4430 0%,#3f5b3b 40%,#e0457f 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.about h2{margin-bottom:1.8rem;font-size:clamp(3rem,7vw,5.5rem)}.about p{max-width:460px;margin-bottom:1rem;font-size:.95rem}.about p b{color:var(--green)}.about .pill{margin-top:1rem}.portrait{width:100%;max-width:400px;height:460px;margin-inline:auto;position:relative}.portrait .block{background:var(--green);color:var(--cream);transition:transform .5s var(--ease);position:absolute;inset:0 40px 70px}.portrait:hover .block{transform:translateY(-8px)rotate(1.5deg)}.portrait .circle{background:var(--matcha);opacity:.9;width:190px;height:190px;transition:transform .6s var(--ease);border-radius:50%;position:absolute;top:90px;left:50%;transform:translate(-50%)}.portrait:hover .circle{transform:translate(-50%)scale(1.12)}.tag{background:var(--yellow);color:var(--black);z-index:3;transition:transform .3s var(--ease);border-radius:999px;padding:.6rem 1.4rem;font-size:.8rem;font-weight:600;position:absolute}.tag:hover{transform:scale(1.1)rotate(-3deg)}.tag.t1{top:38%;left:-20px}.tag.t2{background:var(--matcha);top:56%;right:-10px}.contact-card{background:var(--black);color:var(--cream);z-index:3;gap:.25rem;padding:1rem 1.2rem;font-size:.75rem;display:grid;position:absolute;bottom:0;left:40px;right:40px}.contact-card h4{font-size:1.5rem;font-family:var(--display)}.resume{background:var(--g-green);color:var(--cream);padding:7rem 0 0;overflow:hidden}.big-outline{color:#0000;-webkit-text-stroke:2px var(--yellow);text-align:right;opacity:.8;-webkit-user-select:none;user-select:none;margin-bottom:2rem;font-size:clamp(4rem,13vw,11rem);line-height:.85}.big-outline span{opacity:.5;display:block}.big-outline span:last-child{opacity:.25}.resume-top{grid-template-columns:1fr 1fr;gap:4rem;padding-bottom:5rem;display:grid}.section-label{font-family:var(--display);color:var(--yellow);margin-bottom:1.8rem;font-size:2rem;font-weight:900}.timeline{gap:1.8rem;display:grid;position:relative}.timeline:before{content:"";background:var(--orange);width:1px;position:absolute;top:8px;bottom:8px;left:7px}.t-item{transition:transform .35s var(--ease);padding-left:2.8rem;position:relative}.t-item:hover{transform:translate(10px)}.t-item:before{content:"✦";color:var(--orange);background:var(--green);transition:transform .5s var(--ease);font-size:1.1rem;position:absolute;top:-2px;left:-2px}.t-item:hover:before{color:var(--yellow);transform:rotate(180deg)scale(1.4)}.t-item .yr{font-size:.95rem;font-weight:700}.t-item h4{font-family:var(--body);font-size:.95rem;font-weight:700}.t-item p{opacity:.8;font-size:.8rem}.skill-cols{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.skill-cols h5{font-family:var(--body);margin-bottom:.8rem;font-size:.9rem}.chips{flex-wrap:wrap;gap:.6rem;display:flex}.chip{background:var(--black);color:var(--cream);cursor:default;transition:transform .3s var(--ease), background .3s, color .3s;border-radius:999px;padding:.45rem 1.1rem;font-size:.75rem;font-weight:600}.chip:hover{background:var(--yellow);color:var(--black);transform:translateY(-4px)rotate(-2deg)}.chip.light{background:var(--cream);color:var(--black)}.chip.outline{border:1.5px solid var(--yellow);color:var(--yellow);background:0 0}.exp-block{background:var(--g-pink);color:var(--black);padding:3rem 0 4rem}.exp-grid{grid-template-columns:1fr 1fr;gap:4rem;display:grid}.exp-block .section-label{color:var(--black)}.exp-block .timeline:before{background:var(--black);opacity:.4}.exp-block .t-item:before{background:var(--yellow);color:var(--black)}.exp-block .t-item:hover:before{color:var(--orange)}.exp-block .t-item p{opacity:.85}.exp-block .chips{margin-top:2rem}.exp-block .chip:hover{background:var(--orange);color:#fff}.skills{background:var(--g-soft);padding:7rem 0}.skills-grid{grid-template-columns:1fr 1fr;gap:4rem;display:grid}.skills h2,.work h2,.contact h2{font-size:clamp(2.8rem,6vw,4.5rem)}.skills h3{font-family:var(--display);margin:2rem 0 1.4rem;font-size:1.8rem}.skills .chip{padding:.6rem 1.4rem;font-size:.85rem}.skills .chip.green{background:var(--green)}.skills .chip.green:hover{background:var(--yellow)}.skills .chip.yellow{background:var(--g-pink);color:var(--black)}.skills .chip.yellow:hover{background:var(--orange);color:#fff}.cert{background:var(--cream-soft);border-left:5px solid var(--orange);transition:transform .35s var(--ease), box-shadow .35s, border-color .35s;align-items:center;gap:1rem;margin-bottom:1rem;padding:1.1rem 1.4rem;font-size:.9rem;font-weight:600;display:flex}.cert .st{color:var(--orange);transition:transform .5s var(--ease)}.cert:hover{border-color:var(--green);transform:translate(12px);box-shadow:0 12px 24px #0001}.cert:hover .st{transform:rotate(180deg)scale(1.3)}.work{background:var(--g-green);color:var(--cream);padding:7rem 0}.work-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3.5rem;display:flex}.work-head p{opacity:.85;max-width:380px;font-size:.9rem}.work-grid{grid-template-columns:repeat(3,1fr);gap:1.6rem;display:grid}.card{background:var(--green-deep);cursor:pointer;transition:transform .45s var(--ease), box-shadow .45s;border-radius:6px;position:relative;overflow:hidden}.card:hover{transform:translateY(-12px)rotate(-.6deg);box-shadow:0 30px 50px #0005}.card .img{aspect-ratio:4/3;color:var(--cream);transition:transform .7s var(--ease);overflow:hidden}.card:hover .img{transform:scale(1.06)}.card .meta{background:var(--green-deep);padding:1.2rem 1.4rem 1.5rem;position:relative}.card .cat{color:var(--yellow);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;font-weight:700}.card h3{margin:.3rem 0;font-size:1.2rem}.card .desc{opacity:.8;max-height:0;transition:max-height .5s var(--ease), margin .3s;font-size:.8rem;overflow:hidden}.card:hover .desc{max-height:120px;margin-top:.5rem}.card .arrow{background:var(--g-pink);width:44px;height:44px;color:var(--black);transition:transform .45s var(--ease);border-radius:50%;place-items:center;font-size:1.2rem;display:grid;position:absolute;top:1rem;right:1rem;transform:scale(0)rotate(-90deg)}.card:hover .arrow{transform:scale(1)rotate(0)}.card .num{font-family:var(--display);color:var(--cream);opacity:.6;font-size:1.4rem;font-weight:900;position:absolute;top:1rem;left:1rem}.contact{background:var(--g-dark);color:var(--cream);padding:7rem 0 2rem;overflow:hidden}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:4rem;display:grid}.contact h2 em{color:var(--yellow);font-style:italic}.contact .lead{opacity:.85;max-width:420px;margin:1.5rem 0 2.5rem;font-size:.95rem}.c-link{align-items:center;gap:1.2rem;margin-bottom:1.4rem;display:flex}.c-ico{border:1.5px solid var(--yellow);width:54px;height:54px;color:var(--yellow);transition:background .3s, color .3s, transform .4s var(--ease);border-radius:50%;place-items:center;display:grid}.c-link:hover .c-ico{background:var(--yellow);color:var(--black);transform:rotate(-12deg)scale(1.1)}.c-link small{letter-spacing:.14em;text-transform:uppercase;opacity:.6;font-size:.7rem;display:block}.c-link span.v{font-weight:600;transition:color .3s,padding .3s}.c-link:hover span.v{color:var(--yellow);padding-left:6px}.form-card{background:var(--g-matcha-pink);color:var(--black);transition:transform .4s var(--ease);border-radius:6px;padding:2.6rem}.form-card:hover{transform:rotate(-.8deg)}.form-card h3{margin-bottom:1.5rem;font-size:2rem}.field{margin-bottom:1.2rem}.field label{letter-spacing:.14em;text-transform:uppercase;margin-bottom:.2rem;font-size:.7rem;font-weight:700;display:block}.field input,.field textarea{resize:none;background:0 0;border:0;border-bottom:2px solid #0004;outline:none;width:100%;padding:.6rem 0;transition:border-color .3s,padding .3s}.field input:focus,.field textarea:focus{border-color:var(--black);padding-left:.6rem}footer.foot{text-align:center;opacity:.7;border-top:1px solid #fff2;margin-top:5rem;padding-top:1.5rem;font-size:.8rem}@media (width<=900px){.nav-links a:not(.pill){display:none}.hero-head{top:78vw;left:0}.title-stack{font-size:13vw}.hero-photo{width:55vw;top:0}.hero-stage{min-height:150vw}.about-grid,.resume-top,.exp-grid,.skills-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}.work-grid{grid-template-columns:1fr 1fr}.scroll-btn{right:6%}}@media (width<=600px){.work-grid,.skill-cols{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.hero-photo img,.portrait .block img,.card .img img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.hero-photo{overflow:hidden}.ph{white-space:pre-line}.contact-card a{transition:color .25s}.contact-card a:hover{color:var(--yellow)}
