header{animation:headerEntrance .5s cubic-bezier(.25,.46,.45,.94)forwards}@media(max-width:768px){header{animation:headerEntranceMobile .75s cubic-bezier(.25,.46,.45,.94)forwards}}header #title{animation:titleEntrance .8s cubic-bezier(.25,.46,.45,.94)forwards}header a{opacity:0;transform:translateX(350px);animation:anchorEntrance .6s cubic-bezier(.25,.46,.45,.94)forwards;animation-delay:var(--child-animation-delay)}@media(max-width:768px){header a{transform:translateY(-50px)}}@keyframes headerEntrance{from{transform:translateX(-50%)translateY(-20px)translate3d(0,0,0)}to{transform:translateX(-50%)translateY(0)translate3d(0,0,0)}}@keyframes headerEntranceMobile{from{transform:translateY(-20px)translate3d(0,0,0)}to{transform:translateY(0)translate3d(0,0,0)}}@keyframes titleEntrance{from{opacity:.2;transform:translateX(-300px)}to{transform:translateX(0);opacity:1}}@keyframes anchorEntrance{to{transform:translateX(0);opacity:1}}#intro{align-items:center}#intro #text{font-family:sen,sans-serif;font-weight:600;display:flex;flex-direction:column;white-space:nowrap}#intro #text #greeting{color:#fff;font-size:2rem}#intro #text #name{color:#8fdfd4;font-size:4rem;line-height:1}#intro #text #vocation{color:#b3b3b3;font-size:1.8rem;line-height:1}#intro #text .text-shimmer-char{display:inline-block;opacity:0;transform:translateY(-3px);filter:blur(2px);transition:all .6s cubic-bezier(.4,0,.2,1)}#intro #text .text-shimmer-char.text-shimmer-char.in{opacity:1;transform:translateY(0);filter:blur(0)}@media(min-width:1200px){#intro #text #greeting .expand-char{margin-right:.17em;transform:perspective(200px)rotateY(-180deg)scale(1.1) !important}#intro #text #name .expand-char{margin-right:.12em;transform:perspective(200px)rotateY(15deg)scale(1.1) !important;text-shadow:0 0 15px rgba(143,223,212,.3)}#intro #text #vocation .expand-char{margin-right:.15em;color:#a3e5dc}}#intro #pfp-container img#pfp{width:256px;height:256px}@media(min-width:1200px){#intro #pfp-container img#pfp{cursor:pointer}}@media(prefers-reduced-motion:no-preference){#intro #pfp-container img#pfp{opacity:0;transform:scale(.3)rotate(180deg);filter:blur(20px);animation:pfpEntrance 1.2s cubic-bezier(.4,0,.2,1).1s forwards}}@media(min-width:768px){#intro{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;margin-top:clamp(2px,5rem,20vh);width:100%}#intro #text{justify-self:end;text-align:right;padding-right:2rem}#intro #pfp-container{justify-content:flex-start;padding-left:2rem}}@media(max-width:768px){#intro{display:flex;flex-direction:column}#intro #text{margin-top:1rem;text-align:center}#intro #pfp-container{margin-top:3rem}}@keyframes pfpEntrance{to{opacity:1;transform:scale(1)rotate(0);filter:blur(0)}}@keyframes sectionEntrance{to{opacity:1;transform:translate(0)}}section:not(#intro){margin-top:clamp(3rem,8vw,5rem);padding:2rem;border-radius:16px;transition:transform .3s ease,box-shadow .3s ease}@media(prefers-reduced-motion:no-preference){section:not(#intro){opacity:0;animation:sectionEntrance .8s cubic-bezier(.25,.46,.45,.94)forwards;animation-delay:calc(.2s + var(--child-animation-delay))}}@media(prefers-reduced-motion:no-preference) and (min-height:1200px){section:not(#intro):nth-child(even){transform:translateX(-35px)}section:not(#intro):nth-child(odd){transform:translateX(35px)}}@media(prefers-reduced-motion:no-preference) and (max-height:1200px){section:not(#intro){transform:translateY(35px)}}@media(max-width:768px){section:not(#intro){padding:1.5rem;border-radius:12px}}section:not(#intro) h2{margin-bottom:1rem;color:#fff}section:not(#intro) p{margin-bottom:1rem;color:#b3b3b3;line-height:1.6}section:not(#intro) .link-capsule{display:inline-block;margin-top:.75rem;padding:.5rem 1rem;background:rgba(143,223,212,.1);border:1px solid #8fdfd4;border-radius:18px;transition:all .2s ease;font-weight:400;text-decoration:none}section:not(#intro) .link-capsule:hover{background:rgba(143,223,212,.2);transform:translateY(-1px);text-decoration:none}#about{background:linear-gradient(135deg,#1f1f1f,#131313);border:2px solid rgba(255,255,255,.1)}#build{background:linear-gradient(135deg,#25312f,#131313);border:2px solid rgba(143,223,212,.3)}#write{background:linear-gradient(135deg,#1e1e1e,#1d1d1d);border:2px solid rgba(255,255,255,5%)}#contact{background:linear-gradient(-45deg,#212b29,#191919);border:2px solid rgba(143,223,212,.3)}#projects,#posts{margin-top:1.5rem}#projects h3,#posts h3{margin-bottom:1rem;color:#fff;font-size:1.2rem}#projects .cards-grid,#posts .cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media(max-width:768px){#projects .cards-grid,#posts .cards-grid{grid-template-columns:1fr;gap:1rem}}#projects .cards-grid .card,#posts .cards-grid .card{background:rgba(40,40,40,.8);border-radius:12px;border:1px solid rgba(255,255,255,5%);transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 15px rgba(0,0,0,.2);overflow:hidden}#projects .cards-grid .card:hover,#posts .cards-grid .card:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 4px 30px rgba(0,0,0,.3);border-color:rgba(143,223,212,.3)}#projects .cards-grid .card .card-link,#posts .cards-grid .card .card-link{display:block;color:#fff;text-decoration:none;height:100%;box-sizing:border-box}#projects .cards-grid .card .card-link .card-image,#posts .cards-grid .card .card-link .card-image{width:100%;height:160px;object-fit:cover;border-radius:12px 12px 0 0;transition:all .2s ease}#projects .cards-grid .card .card-link h4,#posts .cards-grid .card .card-link h4{margin:0 0 .5rem;padding:0 1.5rem;padding-top:1rem;font-size:1.2rem;font-family:sen,sans-serif;color:#a3e5dc;line-height:1.3}#projects .cards-grid .card .card-link p,#posts .cards-grid .card .card-link p{margin:0;padding:0 1.5rem 1.5rem;font-size:.9rem;color:#b3b3b3;line-height:1.5}#projects .cards-grid .card .card-link:hover,#posts .cards-grid .card .card-link:hover{text-decoration:none}#projects .cards-grid .card .card-link:hover .card-image,#posts .cards-grid .card .card-link:hover .card-image{transform:scale(1.05)}#projects .cards-grid .card .card-link:hover h4,#posts .cards-grid .card .card-link:hover h4{color:#a3e5dc}main{margin-bottom:1.5rem}@media(max-width:768px){main{max-width:92vw}}