/* Portfolio additions share the site's theme and dark-mode colours. */
.profile-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin-top:1.6rem; }
.profile-project { display:flex; flex-direction:column; padding:1.65rem; background:var(--card-bg); border:1px solid var(--border); border-radius:12px; min-width:0; }
.profile-project h3 { font-size:1.5rem; margin-bottom:.45rem; }
.profile-project h3 a { color:var(--heading); }
.profile-kicker { font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:.5rem; }
.profile-status { font-size:.78rem; color:var(--text-muted); margin-bottom:1rem; }
.profile-evidence { font-size:.9rem; }
.profile-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin:.5rem 0 1.2rem; padding:0; list-style:none; }
.profile-tags li { font-size:.73rem; border:1px solid var(--border); padding:.15rem .55rem; border-radius:5px; color:var(--text-muted); }
.profile-project-link { margin-top:auto; font-size:.88rem; font-weight:600; }
.profile-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.profile-route { padding:1.4rem; border:1px solid var(--border); border-radius:10px; background:var(--card-bg); }
.profile-route h2, .profile-route h3 { font-size:1.25rem; margin-bottom:.6rem; }
.profile-route p { font-size:.91rem; }
.profile-note { border-left:3px solid var(--accent); padding:.6rem 1rem; margin:1.5rem 0; background:var(--surface); }
.profile-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.5rem; }
.profile-skills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.3rem; margin-top:1rem; }
.profile-skills h3 { margin-bottom:.4rem; font-size:1.05rem; }
.profile-skills p { color:var(--text-muted); font-size:.9rem; }
.profile-book-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; list-style:none; padding:0; margin-top:1.5rem; }
.profile-book-list li { padding:1.4rem; background:var(--card-bg); border:1px solid var(--border); border-radius:10px; }
.profile-book-list h3 { margin-bottom:.6rem; }
.profile-book-list .profile-status { margin-bottom:.5rem; }
.profile-book-card { display:grid; grid-template-columns:minmax(110px,38%) minmax(0,1fr); align-items:start; gap:1.2rem; }
.profile-cover-link { display:block; border-radius:3px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.18); }
.profile-book-cover { display:block; width:100%; height:auto; }
.profile-textbook { display:grid; grid-template-columns:230px minmax(0,1fr); align-items:start; gap:2rem; margin:1.5rem 0; }
.profile-textbook h3 { margin-bottom:.7rem; }
.profile-book-topics { list-style:disc; padding-left:1.2rem; }
.profile-book-topics li { margin-bottom:.65rem; }
.profile-cover-link:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.profile-project a, .profile-book-list a { overflow-wrap:anywhere; }
.profile-project a:focus-visible, .profile-route a:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
@media(max-width:760px) { .profile-route-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .profile-project-grid, .profile-skills, .profile-book-list { grid-template-columns:1fr; } .profile-project { padding:1.25rem; } .cv-dl-bar { align-items:flex-start; } }
@media(max-width:760px) { .profile-textbook { grid-template-columns:1fr; } .profile-textbook > .profile-cover-link { width:min(230px,100%); margin:0 auto; } }
@media(max-width:380px) { .profile-book-card { grid-template-columns:1fr; } .profile-book-card > .profile-cover-link { width:min(200px,100%); margin:0 auto; } }
