/* Motion and contact styles extend the base design without adding dependencies. */
.hero .portrait-frame { transform: translateY(2.5rem) scale(.93); opacity: 0; filter: blur(8px); transition: transform 1.15s cubic-bezier(.2,.75,.2,1), opacity .95s ease, filter 1.15s ease; }
.hero.hero-ready .portrait-frame { transform: translateY(0) scale(1); opacity: 1; filter: blur(0); }
.hero .availability { opacity: 0; transform: translateY(1.4rem) rotate(-4deg); transition: opacity .5s ease 1s, transform .7s cubic-bezier(.2,.75,.2,1) 1s; }
.hero.hero-ready .availability { opacity: 1; transform: translateY(0) rotate(0); }
.hero .hero-copy .reveal { transition-duration: .9s; transition-timing-function: cubic-bezier(.2,.75,.2,1); }
.hero .eyebrow.reveal { transition-delay: .18s; }
.hero h1.reveal { transition-delay: .32s; transform: translateY(2.8rem); }
.hero .hero-lede.reveal { transition-delay: .52s; }
.hero .hero-actions.reveal { transition-delay: .68s; }
.hero h1.reveal.is-visible { transform: translateY(0); }
.reveal { transition-timing-function: cubic-bezier(.2,.75,.2,1); }
.timeline-item:nth-child(2n) { transition-delay: .1s; }
.project-card:nth-child(2), .skill-group:nth-child(2), .cert:nth-child(2n) { transition-delay: .12s; }
.skill-group:nth-child(3) { transition-delay: .22s; }
.featured-card, .skill-group, .leadership, .contact-links a, .cert, .timeline-item { transition: transform .36s ease, box-shadow .36s ease, background-color .36s ease, border-color .36s ease, opacity .8s ease; }
.featured-card:hover, .featured-card:focus-within, .leadership:hover { transform: translateY(-.35rem); box-shadow: 0 25px 65px rgba(82,26,35,.12); }
.skill-group:hover { transform: translateY(-.35rem); background: var(--paper); }
.timeline-item:hover, .cert:hover { transform: translateX(.5rem); border-top-color: rgba(255,137,147,.65); }
.contact-links a:hover, .contact-links a:focus-visible { transform: translateY(-.2rem); box-shadow: 0 10px 25px rgba(82,26,35,.08); }
.button:hover, .button:focus-visible { transform: translateY(-.2rem); box-shadow: 0 10px 25px rgba(82,26,35,.18); }
.button:active, .contact-links a:active, .project-card:active { transform: translateY(0) scale(.985); }
.contact-form { max-width: 56rem; margin: 0 auto 2.5rem; padding: clamp(1.5rem,4vw,3.5rem); background: var(--paper); border: 1px solid var(--line); text-align: left; box-shadow: 0 12px 45px rgba(82,26,35,.055); transition: transform .45s cubic-bezier(.2,.75,.2,1), box-shadow .45s ease, border-color .45s ease, opacity .8s ease; }
.contact-form:hover, .contact-form:focus-within, .contact-form:active { transform: translateY(-.35rem); border-color: rgba(111,15,32,.42); box-shadow: 0 25px 65px rgba(82,26,35,.12); }
.contact-form.reveal:not(.is-visible) { transform: translateY(2rem); }
.form-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.form-heading h3 { margin: 0; font: 400 clamp(1.8rem,3vw,2.8rem)/1.05 var(--serif); letter-spacing: -.035em; }
.form-heading > span { color: var(--red); font: 400 2rem var(--serif); transition: transform .4s ease; }
.contact-form:hover .form-heading > span, .contact-form:focus-within .form-heading > span { transform: translate(.25rem,-.25rem) rotate(8deg); }
.form-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.3rem; }
.form-field { display: flex; flex-direction: column; gap: .55rem; min-width: 0; }
.form-field-full { grid-column: 1 / -1; }
.form-field label { color: var(--burgundy); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.form-field input, .form-field textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: .95rem 1rem; background: #fff; color: var(--ink); font: inherit; font-size: .95rem; outline: none; resize: vertical; transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease; }
.form-field input:hover, .form-field textarea:hover { border-color: rgba(111,15,32,.48); background: #fffaf8; }
.form-field input:focus, .form-field textarea:focus { border-color: var(--burgundy); box-shadow: 0 0 0 3px rgba(227,38,54,.12); background: #fff; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #998d8e; }
.form-bottom { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-top: 1.5rem; }
.form-bottom p { max-width: 17rem; color: var(--muted); font-size: .77rem; line-height: 1.45; }
.form-bottom button { cursor: pointer; gap: 1.2rem; font-family: inherit; }
.form-bottom button span { font-size: 1.1rem; line-height: 1; }
@media (max-width: 600px) { .form-fields { grid-template-columns: 1fr; } .form-bottom { align-items: stretch; flex-direction: column; } .form-bottom p { margin: 0; } .form-bottom button { width: 100%; } .timeline-item:hover, .cert:hover { transform: none; } }
@media (prefers-reduced-motion: reduce) { .hero .portrait-frame, .hero .availability { opacity: 1; transform: none; filter: none; } .contact-form:hover, .contact-form:focus-within, .contact-form:active { transform: none; } }
.footer-details { text-align: center; }
.footer-details p { margin: .3rem 0; }
.footer-credit { color: #cbb5b9; font-size: .69rem; text-transform: uppercase; letter-spacing: .06em; }
.footer-credit a { color: #ff9ba4; font-weight: 800; text-decoration: none; transition: color .25s ease; }
.footer-credit a:hover, .footer-credit a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
