/* Homepage corrections and an ink-drawn lifecycle rocket. */
.top-nav a,.top-nav #resume-nav{font:500 10px/1.6 var(--mono);letter-spacing:1px;color:var(--ink)}
.animated .hero-copy{top:20vh}.hero-copy h1{font-size:clamp(62px,7.35vw,116px);line-height:.84}.hero-line{margin-bottom:.09em}.animated .rewrite-prefix{top:-7%;left:55%;font-size:clamp(32px,4vw,60px);white-space:nowrap}.animated .rewrite-one{top:50%;font-size:clamp(60px,7.1vw,112px)}.animated .rewrite-two{top:77%;font-size:clamp(58px,6.9vw,108px)}.animated .brush{height:27%;width:127%}.animated .brush-one{top:49%}.animated .brush-two{top:75%}.animated .rewrite-arrow{left:117%;top:95%}
.rocket-doodle.engineer-buddy{position:fixed;width:166px;height:190px;right:20px;bottom:65px;z-index:18;pointer-events:none;contain:layout;opacity:1;filter:drop-shadow(1px 2px 1px #23392c10)}.rocket-arrival{width:100%;height:164px;animation:rocket-arrive 1.7s cubic-bezier(.2,.8,.2,1) both}.rocket-arrival svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:#355745;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.rocket-shadow{fill:#415f4113;stroke:none}.rocket-shell,.rocket-fin path{fill:#fcfaf0}.rocket-fin path{fill:#dce7cc}.rocket-seam{stroke:#7b9171;stroke-width:1.1}.rocket-window circle:first-child{fill:#d9e8d5}.rocket-window circle:nth-child(2){stroke:#859c7a;stroke-width:1}.rocket-window path{stroke:#2794a4;stroke-width:1.4}.rocket-highlight{stroke:#c2cdb1;stroke-width:2}.rocket-vehicle,.rocket-fin,.rocket-window,.rocket-check,.rocket-tool,.rocket-blueprint,.rocket-exhaust{transition:transform .85s cubic-bezier(.2,.7,.2,1),opacity .7s;transform-box:fill-box;transform-origin:center}.rocket-vehicle{transform:rotate(7deg)}.rocket-blueprint{stroke:#8ba797;stroke-width:.8;opacity:0}.rocket-blueprint>path:first-child{fill:#dce9dc28}.rocket-blueprint .blueprint-rocket{stroke:#5ba6b1;stroke-width:1.5}.rocket-tool{opacity:0;transform:translate(-7px,5px) rotate(-20deg)}.rocket-check{opacity:0;transform:scale(.7);stroke:#588250;fill:#f7faed}.rocket-check path{stroke:#458664;stroke-width:2}.rocket-exhaust{opacity:0;transform:scaleY(.4);transform-origin:top}.rocket-exhaust>path:first-child{fill:#e3c588;stroke:#9b8c5f}.rocket-exhaust>path:last-child{fill:#f4e4ad;stroke:none}.rocket-orbit{stroke:#7fa496;stroke-width:1;opacity:.65}
.rocket-doodle[data-phase=plan] .rocket-blueprint{opacity:1}.rocket-doodle[data-phase=plan] .rocket-vehicle{opacity:.13;transform:translate(-7px,-3px) rotate(0)}.rocket-doodle[data-phase=plan] .rocket-shadow{opacity:.3}.rocket-doodle[data-phase=build] .rocket-tool{opacity:1;transform:translate(0,0) rotate(0)}.rocket-doodle[data-phase=build] .fin-left{animation:fin-assemble 1.1s both}.rocket-doodle[data-phase=build] .rocket-window{animation:window-assemble 1.2s both}.rocket-doodle[data-phase=test] .rocket-vehicle{transform:rotate(0)}.rocket-doodle[data-phase=test] .rocket-check{opacity:1;transform:scale(1)}.rocket-doodle[data-phase=launch] .rocket-vehicle{transform:translate(7px,-23px) rotate(12deg)}.rocket-doodle[data-phase=launch] .rocket-exhaust{opacity:1;transform:scaleY(1);animation:rocket-flame .48s ease-in-out infinite alternate}.rocket-doodle[data-phase=launch] .rocket-shadow{opacity:.4;transform:scaleX(.6);transform-origin:center}
.rocket-stage{display:flex;align-items:center;justify-content:center;gap:7px;color:#697e5e;font:7px/1.6 var(--mono);letter-spacing:.35px;white-space:nowrap}.rocket-stage-number{color:#1194a5}.rocket-progress{display:flex;justify-content:center;gap:5px;margin-top:9px}.rocket-progress i{width:16px;height:2px;background:#a6b99a4d}.rocket-doodle[data-phase=plan] .rocket-progress i:nth-child(1),.rocket-doodle[data-phase=build] .rocket-progress i:nth-child(-n+2),.rocket-doodle[data-phase=test] .rocket-progress i:nth-child(-n+3),.rocket-doodle[data-phase=launch] .rocket-progress i{background:#70a091}.rocket-doodle.quiet *,.is-paused .rocket-doodle *{animation-play-state:paused!important}.rocket-doodle.quiet .rocket-arrival{animation:none}.rocket-doodle.quiet .rocket-vehicle{transform:none}
@keyframes rocket-arrive{0%{opacity:0;transform:translate(130px,100px) rotate(-18deg)}65%{opacity:1;transform:translate(-8px,-5px) rotate(3deg)}100%{opacity:1;transform:none}}@keyframes fin-assemble{from{transform:translate(-12px,6px) rotate(-15deg);opacity:0}to{transform:none;opacity:1}}@keyframes window-assemble{from{transform:translate(12px,-8px);opacity:0}to{transform:none;opacity:1}}@keyframes rocket-flame{from{transform:scaleY(.85)}to{transform:scaleY(1.05)}}
@media(max-height:750px) and (min-width:801px){.animated .hero-copy{top:18vh}.hero-copy h1{font-size:clamp(60px,7vw,94px)}.rocket-doodle.engineer-buddy{width:140px;height:165px;bottom:64px;right:15px}.rocket-arrival{height:140px}.rocket-stage{font-size:6px}.animated .identity-paper{right:15vw}}
@media(max-width:1100px) and (min-width:801px){.hero-copy h1{font-size:7.1vw}.animated .rewrite-one{font-size:7vw}.animated .rewrite-two{font-size:6.8vw}.rocket-doodle.engineer-buddy{right:12px;width:130px}.rocket-arrival{height:145px}}
@media(max-width:800px){.top-nav a,.top-nav #resume-nav{font-size:8px;letter-spacing:.2px}.hero-copy h1{font-size:clamp(47px,10.7vw,78px);line-height:.86}.rocket-doodle.engineer-buddy{width:95px;height:117px;right:9px;bottom:57px}.rocket-arrival{height:94px}.rocket-stage{font-size:4.5px;gap:4px;letter-spacing:0}.rocket-progress{margin-top:6px;gap:3px}.rocket-progress i{width:10px}.home-section .identity-paper{max-width:calc(100% - 45px)}body:not(.animated) .home-section{padding-bottom:60px}.hero-copy{padding-top:30px}.rocket-doodle .rocket-arrival{animation-duration:1.3s}}
@media(prefers-reduced-motion:reduce){.rocket-doodle *{animation:none!important;transition:none!important}.rocket-vehicle{transform:none!important}}
/* Assemble at the lower left, fly upward, then remain active at the top right. */
.rocket-doodle .rocket-arrival{animation:none}.rocket-doodle[data-phase=build] .fin-right{animation:fin-right-assemble 1.5s both}.rocket-doodle[data-phase=build] .rocket-shell{animation:rocket-draw 1.5s both;stroke-dasharray:310;stroke-dashoffset:0}.rocket-doodle[data-phase=cruise] .rocket-vehicle{transform:none}.rocket-doodle[data-phase=cruise] .rocket-shadow{opacity:1}.rocket-doodle[data-phase=cruise] .rocket-progress i{background:#70a091}.rocket-doodle[data-phase=cruise] .rocket-orbit{opacity:.9}.rocket-doodle[data-phase=launch] .rocket-shadow{opacity:0}.rocket-doodle[data-phase=plan] .rocket-vehicle{opacity:0}.rocket-doodle[data-phase=build] .rocket-stage-number{color:#78965e}.rocket-doodle[data-phase=test] .rocket-stage-number{color:#458664}.profile-details{display:inline-block;text-decoration:none}.rocket-doodle.quiet{transform:none!important}
@keyframes fin-right-assemble{from{transform:translate(18px,6px) rotate(20deg);opacity:0}to{transform:none;opacity:1}}@keyframes rocket-draw{from{stroke-dashoffset:310;fill:#fcfaf000}to{stroke-dashoffset:0;fill:#fcfaf0}}

/* The end state is sustained flight, not a parked rocket. */
.rocket-doodle.engineer-buddy{top:clamp(104px,12vh,140px);bottom:auto}
.rocket-doodle[data-phase=cruise] .rocket-vehicle{animation:rocket-cruise 3.2s ease-in-out infinite}
.rocket-doodle[data-phase=cruise] .rocket-exhaust{opacity:1;transform:scaleY(1);animation:rocket-flame .48s ease-in-out infinite alternate}
.rocket-doodle[data-phase=cruise] .rocket-shadow{opacity:0}
.rocket-doodle[data-phase=cruise] .rocket-orbit>path:last-child{display:none}
.rocket-doodle.quiet .rocket-vehicle,.rocket-doodle.quiet .rocket-exhaust{animation:none!important}
@keyframes rocket-cruise{0%,100%{transform:translateY(0) rotate(3deg)}50%{transform:translateY(-3px) rotate(-1deg)}}
@media(max-width:800px){.rocket-doodle.engineer-buddy{top:104px;bottom:auto}}
@media(prefers-reduced-motion:reduce){.rocket-doodle[data-phase=cruise] .rocket-vehicle,.rocket-doodle[data-phase=cruise] .rocket-exhaust{animation:none!important}}

/* Fully remove off-home art from painting and pause its decorative loops. */
.rocket-doodle[hidden]{display:none!important}
.rocket-doodle.is-off-home *,.rocket-doodle.rocket-paused *,.rocket-doodle.rocket-tab-hidden *{animation-play-state:paused!important}
