/* Original page geometry, palette and animation scripts retained. */
.flexslider .slides img,#portfolio-content img { height:auto; }
.selected-work .project-links a.case-link:first-child::after { content:'→'; }
.selected-work { color:#b9bdb7; line-height:1.7; }
.selected-work .work-intro { max-width:680px; font-size:32px; line-height:1.25; letter-spacing:-.8px; color:#f5f6f2; margin:4px 0 16px; font-weight:300; }
.selected-work > p { max-width:640px; }
.selected-work .external-link-note { font-size:11px; color:#aabe94; margin-top:18px; }
.selected-work > h2 { display:flex; align-items:center; gap:20px; margin:44px 0 24px; color:#f5f6f2; font-size:24px; letter-spacing:-.4px; }
.selected-work > h2::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,#618e38,transparent); }
.portfolio-intro { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:32px; padding:12px 0 32px; border-bottom:1px solid #78985a50; }
.selected-work .portfolio-intro .work-intro { font-size:36px; line-height:1.2; font-weight:400; letter-spacing:-1.1px; margin:0; }
.portfolio-intro .work-intro span { color:#b7d39a; }
.portfolio-intro-copy > p { margin:0; color:#bdc5b6; font-size:13px; line-height:1.8; }
.portfolio-intro-copy .project-links { margin-top:18px; }
.selected-work .portfolio-intro .project-links a:first-child::after { content:'→'; }
.selected-work .portfolio-intro + h2 { margin-top:28px; margin-bottom:12px; }
.selected-work .portfolio-section-copy { max-width:720px; margin-bottom:0; }
.selected-work .portfolio-section-copy + .external-link-note { margin-top:8px; font-size:10px; color:#9ba88f; }
.work-grid { display:grid; grid-template-columns:1fr; gap:28px; margin-top:26px; }
.work-card { min-width:0; display:grid; grid-template-columns:1fr 1fr; align-items:center; background:linear-gradient(125deg,rgba(46,52,43,.62),rgba(22,24,22,.82)); border-radius:10px; overflow:hidden; box-shadow:0 12px 26px #0002; }
.work-card > a { display:flex; position:relative; align-items:center; justify-content:center; align-self:stretch; min-width:0; padding:22px; background:radial-gradient(ellipse at 30% 30%,#749b412b,transparent 80%); overflow:hidden; }
.work-card > a::after { content:'View screen ↗'; position:absolute; left:22px; bottom:18px; color:#cbd8c1; font-size:11px; letter-spacing:.3px; opacity:0; transition:opacity .2s; }
.work-card > a:hover::after,.work-card > a:focus-visible::after { opacity:1; }
.work-card > a > img { display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:contain; border-radius:5px; box-shadow:0 8px 30px #0006; transition:transform .3s ease; }
.work-card > a:hover > img { transform:scale(1.035); }
.work-copy { min-width:0; padding:26px 26px 26px 8px; }
.work-copy h3 { font-size:25px; line-height:1.2; letter-spacing:-.65px; margin:0 0 14px; color:#fafbf7; }
.work-copy p { margin:0 0 15px; font-size:13px; }
.work-copy .work-type { color:#aabe94; font-size:10px; font-weight:600; letter-spacing:1px; text-transform:uppercase; margin-bottom:10px; }
.work-copy .work-note { font-size:12px; color:#959e90; line-height:1.65; }
.work-copy a { text-decoration:none; }
.work-copy details a,.work-note a { border-bottom:1px solid #65745c; }
.work-copy details { margin:18px 0 2px; }
.work-copy summary { display:flex; align-items:center; gap:9px; padding:8px 0; list-style:none; cursor:pointer; color:#b4beb0; font-size:12px; }
.work-copy summary::-webkit-details-marker { display:none; }
.work-copy summary::before { content:'+'; width:18px; height:18px; line-height:17px; text-align:center; border:1px solid #56634d; border-radius:50%; color:#bad59d; }
.work-copy details[open] summary::before { content:'−'; }
.work-copy details[open] summary { margin-bottom:10px; }
.work-copy details p { font-size:12px; color:#b6bdb1; }
.work-copy .project-links { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:18px 0 0; }
.selected-work .project-links a { display:inline-flex; align-items:center; justify-content:center; gap:9px; box-sizing:border-box; min-height:42px; padding:10px 15px; border-radius:5px; color:#d7e0d0; background:#ffffff06; border:1px solid #56614b; font-size:12px; font-weight:600; line-height:1.4; text-decoration:none; transition:background .2s,border-color .2s,transform .2s; }
.selected-work .project-links a:first-child { color:#fff; border-color:#8eae58 #557d32 #406029; background:linear-gradient(180deg,#719d3d,#426f2b); box-shadow:inset 0 1px 0 #d9efa329,0 3px 8px #0003; }
.selected-work .project-links a:first-child::after { content:'↗'; font-size:16px; font-weight:400; }
.selected-work .project-links a:hover { color:#fff; border-color:#a6c680; background-color:#ffffff10; transform:translateY(-1px); }
.selected-work .project-links a:first-child:hover { background:linear-gradient(180deg,#82ad48,#4c7a31); }
.work-grid:not(.media-highlights) .project-links { gap:8px; }
.selected-work .work-grid:not(.media-highlights) .project-links a { min-height:44px; padding:10px; gap:6px; white-space:nowrap; }
/* Media follows the image-and-story rhythm of the software portfolio. */
.media-highlights { grid-template-columns:1fr; gap:32px; }
.media-highlights .work-card { background:transparent; border-radius:0; box-shadow:none; overflow:visible; }
.media-highlights .work-card + .work-card { padding-top:32px; border-top:1px solid #78985a30; }
.media-highlights .work-card > a { display:block; align-self:center; background:transparent; }
.media-highlights .work-card > a > img { object-fit:cover; border-radius:8px; }
.media-highlights .work-card > a::after { content:'▶'; opacity:1; left:38px; bottom:38px; background:#131a12d9; width:38px; height:38px; border:1px solid #a4bd855e; border-radius:50%; text-align:center; line-height:38px; color:#fff; }
.media-highlights .work-copy > p:not(.project-links) a { color:#d7e7c7; text-decoration:underline; text-decoration-color:#78985a80; text-underline-offset:3px; }
.media-highlights .work-copy > p:not(.project-links) a:hover { color:#fff; text-decoration-color:#d7e7c7; }
.media-highlights .project-links { margin-top:20px; gap:10px; }
.selected-work .media-highlights .project-links a { min-height:44px; padding:10px 16px; }
.media-gallery-intro { margin-top:40px; padding-top:32px; border-top:1px solid #78985a50; }
.media-gallery-intro h2 { margin:0 0 10px; color:#f5f6f2; font-size:26px; line-height:1.25; letter-spacing:-.5px; }
.media-gallery-intro p { max-width:640px; margin:0; font-size:13px; }
#portfolio-filter { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 0; padding:0 0 16px; text-align:left; }
#portfolio-filter li { margin:0; }
#portfolio-filter .button-small,#portfolio-filter .button-small-label { height:44px; }
#portfolio-filter .button-small-label { line-height:44px; }
#portfolio-content.top-border-green { border-top:0; }
.selected-work a:focus-visible,.selected-work summary:focus-visible { outline:2px solid #d5efb9; outline-offset:4px; }
.practice-notes p,.contact-intro { color:#bcbcbc; line-height:1.65; }
.info-slide-item { height:140px; }
.info-slide-item p { color:#bcbcbc; }
/* Contact layout replaces the template's empty map column. */
#contacts .contact-panel { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:center; gap:48px; margin:38px 40px 44px; }
#contacts .contact-copy,#contacts .contact-details { min-width:0; }
#contacts .contact-copy h2 { margin:0 0 18px; color:#fafbf7; font-size:36px; font-weight:300; line-height:1.15; letter-spacing:-.8px; }
#contacts .contact-intro { margin:0; font-size:14px; line-height:1.8; }
#contacts .contact-details { border-left:1px solid #b78b354d; padding-left:36px; }
#contacts .contact-location { margin:0 0 18px; color:#c5c3bd; font-size:13px; line-height:1.7; }
#contacts .contact-location > span { display:block; margin-bottom:4px; color:#d6b66f; font-size:10px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; }
#contacts .contact-actions { display:grid; gap:10px; }
#contacts .contact-action { display:flex; align-items:center; justify-content:space-between; gap:14px; box-sizing:border-box; min-height:48px; padding:12px 16px; border:1px solid #756443; border-radius:5px; background:#ffffff06; color:#eee8dc; font-size:13px; font-weight:600; line-height:1.5; text-decoration:none; transition:background .2s,border-color .2s,transform .2s; }
#contacts .contact-action > span { flex:none; font-size:18px; font-weight:400; line-height:1; }
#contacts .contact-primary { border-color:#bc9346 #886223 #65480f; background:linear-gradient(180deg,#936518,#765113); color:#fff8e8; box-shadow:inset 0 1px 0 #f8e4a829,0 3px 8px #0003; }
#contacts .contact-action:hover { border-color:#d6b66f; background-color:#ffffff10; transform:translateY(-1px); }
#contacts .contact-primary:hover { background:linear-gradient(180deg,#936518,#805917); }
#contacts .contact-action:focus-visible { outline:2px solid #f5d48e; outline-offset:4px; }
@media screen and (max-width:860px) {
 #contacts .contact-panel { grid-template-columns:1fr; gap:26px; }
 #contacts .contact-details { border-left:0; border-top:1px solid #b78b354d; padding:24px 0 0; }
 #contacts .contact-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .portfolio-intro { grid-template-columns:1fr; gap:18px; padding-bottom:26px; }
 .selected-work .portfolio-intro .work-intro { font-size:34px; }
 .info-slide-item { height:245px; }
 .work-card { grid-template-columns:1fr; }
 .work-card > a { padding:22px; }
 .work-copy { padding:4px 24px 24px; }
 .navicon-text { font-size:12px; }
}
@media screen and (max-width:620px) {
 #contacts .contact-panel { margin:28px 25px 34px; }
 #contacts .contact-copy h2 { font-size:32px; }
 #contacts .contact-actions { grid-template-columns:1fr; }
 .selected-work .portfolio-intro .work-intro { font-size:29px; letter-spacing:-.8px; }
 .media-highlights { gap:28px; }
 .media-highlights .work-card > a::after { left:30px; bottom:30px; }
 .media-highlights .work-card + .work-card { padding-top:28px; }
 .media-gallery-intro { margin-top:32px; padding-top:28px; }
 #portfolio-filter { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 #portfolio-filter .button,#portfolio-filter .button-small,#portfolio-filter .button-small-label { width:100%; }
 .selected-work .work-intro { font-size:27px; }
 .selected-work > h2 { font-size:22px; line-height:1.3; gap:12px; margin-top:36px; }
 .work-card > a { padding:14px; }
 .work-copy { padding:18px; }
 .work-copy h3 { font-size:24px; }
 .work-copy .project-links { gap:8px; }
 .selected-work .project-links a { min-height:44px; padding:10px 12px; }
 .navicon-text { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
 #contacts .contact-action { transition:none; }
 #contacts .contact-action:hover { transform:none; }
 .work-card > a > img,.work-card > a::after,.selected-work .project-links a { transition:none; }
 .work-card > a:hover > img,.selected-work .project-links a:hover { transform:none; }
}

/* Readable navigation and evidence within the existing animated template. */
#nav .etabs a .navicon-text { color:#fff; bottom:5px; line-height:16px; font-size:11px; }
#nav .tab-main a.active .navicon-text { color:#fff !important; bottom:5px !important; }
#nav .uhere-text { visibility:hidden; }
#nav .tab-main a.active:hover .uhere-text { visibility:visible; }
#nav a:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
.about-proof { padding-top:12px; }
.about-proof p { margin:0 0 10px; }
.about-proof strong { color:#f2e9d2; font-weight:600; }
.about-proof a { display:inline-block; color:#f2e9d2; font-size:12px; border-bottom:1px solid #c29c5266; }
#resume .substrate p,#resume .skills .skill { color:#bfc5cc; }
#resume .substrate.gradient-blue { background:linear-gradient(135deg,#205f81,#234b77); }
#resume .substrate.gradient-blue p,#resume .substrate.gradient-blue h3 { color:#edf4f8; }
#resume .role-details { margin:14px 0 24px; }
#resume .role-details summary { cursor:pointer; color:#aaceeb; padding:8px 0; font-size:12px; }
#resume .role-details[open] summary { margin-bottom:8px; }
#resume .role-details summary:focus-visible { outline:2px solid #aaceeb; outline-offset:3px; }
@media(max-width:620px) { #nav .etabs a .navicon-text { font-size:10px; } }

/* Career evidence precedes the supporting skills/contact column in reading order. */
.resume-columns { display:flow-root; }
@media(max-width:860px) {
 #resume .resume-columns { display:flex; flex-direction:column; margin:20px 40px 0; }
 #resume .resume-columns > .left-column,#resume .resume-columns > .right-column { float:none; width:auto; margin:0; padding:0; }
 #resume .resume-columns .substrate { box-sizing:border-box; width:auto; padding:20px 24px; }
 #resume .resume-columns > .left-column { width:100%; max-width:320px; align-self:center; }
}
@media(max-width:620px) { #resume .resume-columns { margin:20px 25px 0; } #resume .resume-columns .substrate { padding:18px; } }

/* C47: publication preview retains the complete cover; it is not a video. */
.media-highlights .work-card > a.publication-preview > img { aspect-ratio:1; object-fit:contain; }
.media-highlights .work-card > a.publication-preview::after { display:none; }

/* C48: show the complete desktop website screenshot without a video icon. */
.media-highlights .work-card > a.website-preview > img { aspect-ratio:auto; height:auto; object-fit:contain; }
.media-highlights .work-card > a.website-preview::after { display:none; }
