/* Additions share the portfolio's existing ink, paper and red palette. */
.work-overview{padding:70px max(6vw,20px);background:#f4f1eb;color:#1a1a1a;border-top:1px solid #ddd}
.work-overview h2{font-family:var(--ui-sans,sans-serif);font-size:clamp(24px,3vw,40px);font-weight:600;letter-spacing:-.035em;margin:16px 0 28px}
.work-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.work-summary{display:flex;flex-direction:column;gap:14px;padding:25px;border:1px solid #d4d0c8;color:inherit;text-decoration:none;transition:background .2s,border-color .2s}
.work-summary:hover{background:#fff;border-color:#d1342f}
.work-number{font-family:var(--ui-mono,monospace);font-size:10px;line-height:1.6;color:#666}
.work-summary h3{font-family:var(--ui-sans,sans-serif);font-size:20px;font-weight:600;letter-spacing:-.025em}
.work-summary p,.work-summary strong{font-family:var(--ui-sans,sans-serif);font-size:13px;line-height:1.6}
.work-summary strong{font-weight:500}.work-read{margin-top:auto;padding-top:10px;font-size:11px;color:#b72c27}
.project-preview{position:relative;display:flex;flex-direction:column;justify-content:center;width:100%;min-height:340px;padding:30px;background:#151515;border:1px solid #38302e;color:#f0ece6;text-align:left}
.preview-kicker{font-family:var(--ui-mono,monospace);font-size:9px;letter-spacing:.14em;color:#b9aaa5}
.project-preview h4{font-family:var(--ui-sans,sans-serif);font-size:24px;line-height:1.2;margin:20px 0;font-weight:500}
.preview-flow{display:flex;flex-direction:column;align-items:stretch;gap:5px;font-size:12px}
.preview-flow span{border:1px solid #49413e;padding:11px 14px;background:#201d1b}
.preview-flow b{text-align:center;color:#d55b51;font-weight:400}.preview-flow span:last-child{border-color:#a64940}
.project-preview p{font-size:12px;line-height:1.6;color:#c6bcb6;margin:18px 0}
.project-preview a{font-size:11px;color:#f0b0a6;text-decoration:none}
.project-preview{background:#f4f1eb;color:#1a1a1a;border-color:#d4d0c8;border-radius:8px;min-height:0;padding:20px}
.preview-kicker{color:#75665e}.project-preview h4{font-size:19px;margin:12px 0}
.preview-flow{flex-direction:row;align-items:center}.preview-flow span{flex:1;background:#fff;border-color:#d4d0c8;font-size:11px;padding:10px}
.preview-flow b{transform:rotate(-90deg)}.project-preview p{color:#5b514a;margin:12px 0}.project-preview a{color:#a33e32}
.publication-pending{cursor:default;opacity:.7}
.work-overview .proj-honesty{max-width:none;margin:30px 0 0;padding:20px 0 0;border-top:1px solid #d4d0c8}
@media(min-width:1025px){#ch-projects .projects-head{padding-top:6rem}}
@media(max-width:900px){.work-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.work-overview{padding:40px 20px}.work-overview-grid{grid-template-columns:1fr}.project-preview{min-height:280px;padding:20px}}
@media(prefers-reduced-motion:reduce){.work-summary{transition:none}}
/* Shared chat message layout. Character styling lives in assistant-robot.css. */
.am-hello{display:flex;align-items:flex-end;gap:10px}
.am-hello-av{flex-shrink:0;width:64px;height:93px;overflow:visible;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.am-hello-av .av-head{transform-box:view-box;transform-origin:100px 170px;animation:avHead 3.2s ease-in-out infinite}
.am-hello-av .av-wave{transform-box:view-box;transform-origin:130px 190px;animation:avWave .55s ease-in-out 6}
.am-hello-msg{flex:1;margin:0 0 6px!important;border-bottom-left-radius:4px!important}
#ai-modal.open .am-hello-av{animation:helloIn .55s cubic-bezier(.2,1.3,.4,1) both}
@keyframes helloIn{from{opacity:0;transform:translateY(16px) scale(.9)}to{opacity:1;transform:none}}
.am-msgs .am-msg.bot:not(.am-hello-msg){position:relative;margin-left:38px;border-top-left-radius:4px}
.am-msgs .am-msg.bot:not(.am-hello-msg)::before{content:"";position:absolute;left:-38px;top:0;width:30px;height:30px;border-radius:50%;background:#1f2738 url("assistant-robot-head.svg") center 1px/26px auto no-repeat;box-shadow:0 0 0 1px rgba(167,200,232,.18)}
.am-msgs .am-typing::before{animation:thinkBob 1s ease-in-out infinite}
@keyframes thinkBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.am-avatar *,.am-hello-av,.am-hello-av *{animation:none!important}}
