/* Portfolio layout, independent of the dashboard components. */
.portfolio-home { background:#fff; }
.portfolio-home h1,.portfolio-home h2,.portfolio-home h3,.portfolio-home h4 { font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.portfolio-home .container { max-width:1160px; padding-inline:32px; }
.home-hero { padding:128px 0 58px; }
.home-intro { display:grid; grid-template-columns:minmax(0,1fr) 260px 200px; gap:44px; align-items:center; }
.intro-eyebrow { font-size:15px; font-weight:600; color:var(--text); margin-bottom:20px; }
.intro-eyebrow > span { color:var(--text-faint); font-weight:400; }
.intro-copy h1 { font-size:clamp(34px,4.2vw,51px); line-height:1.18; letter-spacing:-.045em; font-weight:700; margin-bottom:20px; }
.blue { color:var(--accent); } .amp { font-weight:400; }
.intro-description { font-size:17px; line-height:1.75; max-width:510px; margin-bottom:24px; }
.intro-actions { display:flex; gap:12px; flex-wrap:wrap; }
.portfolio-home .btn { border-radius:8px; font-size:14px; padding:12px 18px; min-height:46px; gap:18px; }
.portfolio-home .btn-ghost { background:#fff; border-color:var(--border); }
.intro-stack { display:flex; gap:18px; flex-wrap:wrap; color:var(--text-faint); font-size:13px; margin-top:24px; }
.hero-data-strip { display:flex; flex-direction:column; border:1px solid var(--border); border-radius:16px; background:#fff; padding:18px; align-self:center; }
.hds-item { padding:7px 0; }
.hds-item + .hds-item { border-top:1px solid var(--border); }
.hds-item strong { display:block; font-family:"Space Grotesk",sans-serif; font-size:26px; font-weight:700; letter-spacing:-.02em; color:var(--accent); font-variant-numeric:tabular-nums; }
.hds-item span { display:block; font-size:11.5px; line-height:1.3; color:var(--text-faint); margin-top:1px; }
.hds-item .hds-sub { font-size:10.5px; margin-top:0; opacity:.85; }
.hds-bars { display:flex; align-items:flex-end; gap:4px; height:26px; margin-top:10px; }
.hds-bars i { flex:1; height:100%; border-radius:3px 3px 0 0; background:linear-gradient(180deg,var(--accent),#22d3ee); transform-origin:bottom; animation:hdsGrow 2.2s ease-in-out infinite; animation-delay:calc(var(--i) * .18s); }
.hds-bars i:nth-child(1) { height:55%; } .hds-bars i:nth-child(2) { height:80%; } .hds-bars i:nth-child(3) { height:100%; } .hds-bars i:nth-child(4) { height:68%; } .hds-bars i:nth-child(5) { height:88%; }
@keyframes hdsGrow { 0%,100% { transform:scaleY(.32); opacity:.55; } 50% { transform:scaleY(1); opacity:1; } }
@media (prefers-reduced-motion:reduce) { .hds-bars i { animation:none; transform:scaleY(.7); } }
.profile-photo { border:1px solid var(--border); border-radius:16px; overflow:hidden; background:#f3f5f8; }
.profile-photo img { width:100%; height:285px; object-fit:cover; object-position:center 23%; }
.photo-label { background:#fff; display:flex; justify-content:center; gap:8px; align-items:center; padding:15px 8px; font-size:12px; color:var(--text-dim); }
.availability-dot { width:6px; height:6px; border-radius:50%; background:var(--good); flex-shrink:0; }
.home-section { padding:56px 0; border-top:1px solid var(--border); }
.projects-section,#formation,#contact { background:#f6f8fc; }
.home-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:28px; }
.section-kicker { text-transform:uppercase; letter-spacing:.12em; font-weight:600; font-size:11px; color:var(--accent); margin-bottom:10px; }
.home-section-head h2,.contact-banner h2 { margin:0; font-size:30px; letter-spacing:-.035em; font-weight:650; line-height:1.3; }
.home-section-head > p { max-width:480px; font-size:14px; line-height:1.65; margin:0; }
@media(min-width:761px) { .home-section-head > p { white-space:nowrap; } }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.project-tile { display:flex; flex-direction:column; border:1px solid #e0e6ef; border-radius:12px; padding:23px; background:#fff; transition:transform .2s,border-color .2s,box-shadow .2s; }
.project-tile:hover { transform:translateY(-4px); border-color:#9aafe6; box-shadow:0 12px 26px -16px #2e4c7f44; }
.tile-top { display:flex; gap:10px; align-items:center; margin-bottom:22px; }
.tile-icon { display:flex; width:36px; height:36px; align-items:center; justify-content:center; border-radius:9px; color:var(--accent); background:#edf2ff; flex-shrink:0; }
.tile-icon svg { width:20px; height:20px; }
.tile-category { font-size:11px; font-weight:500; color:var(--text-faint); }
.tile-index { margin-left:auto; color:#79869b; font-size:11px; }
.project-tile h3 { font-size:19px; line-height:1.35; letter-spacing:-.025em; margin-bottom:10px; }
.project-tile p { font-size:14px; line-height:1.65; margin-bottom:24px; }
.tile-bottom { margin-top:auto; padding-top:16px; border-top:1px solid #edf0f5; display:flex; justify-content:space-between; align-items:center; color:var(--accent); font-size:12px; font-weight:600; }
.resume-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.resume-grid .tl-item { padding:28px; background:#fff; border:1px solid var(--border); border-radius:12px; }
.resume-grid .tl-dot { display:none; }
.tl-head { flex-direction:column-reverse; align-items:flex-start; gap:10px; margin:0; }
.tl-head h3 { font-size:20px; line-height:1.4; letter-spacing:-.025em; }
.tl-period { font-size:12px; font-weight:500; white-space:normal; }
.tl-org { font-size:13px; margin:10px 0 20px; }
.tl-item li { font-size:14px; line-height:1.75; padding-left:14px; }
.tl-item li::before { width:4px; height:4px; top:10px; background:#7590b9; }
.tl-item p { font-size:14px; line-height:1.75; }
.tl-badges { gap:6px; margin-top:20px; }
.badge { font-size:11px; border-radius:5px; border-color:#e1e6ee; padding:4px 8px; background:#f7f9fc; }
.skill-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.skill-cat { padding:24px; border:1px solid var(--border); border-radius:12px; margin:0; }
.skill-cat h4 { font-size:16px; line-height:1.4; margin-bottom:18px; letter-spacing:-.015em; }
.skill-cat h4::before { display:none; }
.chip-row { gap:6px; margin:0; }
.chip-row.chip-row-tight { gap:4px; }
.chip-row.chip-row-tight .chip { padding:5px 7px; }
.chip { font-size:12px; padding:5px 8px; border-radius:5px; background:#f7f9fc; border-color:#e7ebf2; }
#competences .card { box-shadow:none; border-radius:12px; padding:24px; }
#competences .card h3 { font-size:18px; }
.lang-row,.lang-row span:last-child { font-size:13px; }
.contact-banner { border-radius:12px; padding:32px; background:#fff; border:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:26px; }
.contact-buttons { display:flex; gap:10px; flex-wrap:wrap; }
.portfolio-home footer { padding:22px 0; font-size:12px; }
.portfolio-home footer p { margin:0; }
@media(max-width:1000px) { .home-intro { gap:36px; grid-template-columns:minmax(0,1fr) 230px; } .hero-data-strip { display:none; } .intro-copy h1 { font-size:42px; } .project-grid,.skill-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .contact-banner { align-items:flex-start; flex-direction:column; } }
@media(max-width:760px) { .home-intro { grid-template-columns:minmax(0,1fr) 180px; gap:24px; } .profile-photo img { height:235px; } .photo-label { font-size:10px; } .intro-copy h1 { font-size:33px; } .home-section-head { align-items:flex-start; flex-direction:column; gap:14px; } .resume-grid { grid-template-columns:1fr; } .intro-eyebrow { font-size:13px; } }
@media(max-width:560px) { .portfolio-home .container { padding-inline:20px; } .portfolio-home .nav .container { padding-inline:12px; } .home-hero { padding:104px 0 36px; } .home-intro { display:flex; flex-direction:column-reverse; align-items:flex-start; gap:24px; } .profile-photo { width:142px; } .profile-photo img { height:142px; object-position:center 25%; } .photo-label { display:none; } .intro-copy h1 { font-size:clamp(29px,7.6vw,40px); } .intro-description { font-size:16px; } .intro-stack { gap:14px; font-size:12px; } .home-section { padding:36px 0; } .project-grid,.skill-grid { grid-template-columns:1fr; } .project-tile { padding:22px; } .tile-top { margin-bottom:16px; } .home-section-head h2,.contact-banner h2 { font-size:26px; } .resume-grid .tl-item { padding:22px; } .contact-banner { padding:24px 20px; } .contact-buttons .btn { font-size:12px; padding:12px; overflow-wrap:anywhere; } }
/* Project-first recruitment portfolio. */
.home-hero { padding-bottom:44px; }
.project-tile { position:relative; border-top:3px solid var(--tile-accent,#315ed8); }
.project-tile:nth-child(2) { --tile-accent:#187f83; }
.project-tile:nth-child(3) { --tile-accent:#7859a5; }
.project-tile:nth-child(4) { --tile-accent:#326eaa; }
.project-tile:nth-child(5) { --tile-accent:#a86930; }
.project-tile:nth-child(6) { --tile-accent:#6850b6; }
.project-tile .tile-icon,.project-tile .tile-bottom { color:var(--tile-accent,var(--accent)); }
.project-scope { display:flex; align-items:baseline; gap:9px; margin:3px 0 14px; color:var(--text-faint); font-size:12px; }
.project-scope strong { font-size:27px; letter-spacing:-.04em; font-weight:650; color:var(--tile-accent,var(--accent)); font-variant-numeric:tabular-nums; }
.project-tile p { margin-bottom:16px; }
.project-methods { font-size:11px; color:var(--text-faint); margin-bottom:18px; }
.tile-top { margin-bottom:16px; }
.achievement-list { gap:16px!important; }
.achievement-list li { padding-left:0; }
.achievement-list li::before { display:none; }
.achievement-list strong,.achievement-list li > span { display:block; }
.achievement-list strong { color:var(--text); font-weight:600; margin-bottom:2px; }
.mission-details { margin-top:16px; border-top:1px solid var(--border); }
.mission-details summary { font-size:12px; padding:14px 0 0; }
.mission-details[open] summary { margin-bottom:14px; }
.skills-focused { grid-template-columns:repeat(2,minmax(0,1fr)); }
.skills-focused h3 { font-size:19px; letter-spacing:-.025em; margin-bottom:10px; }
.skills-focused p { font-size:14px; line-height:1.6; margin-bottom:18px; }
.skills-focused .chip { font-size:13px; }
.language-note { color:var(--text-faint); font-size:13px; line-height:1.8; margin:24px 0 0; }
@media(max-width:560px) { .skills-focused { grid-template-columns:1fr; } .home-hero { padding-bottom:32px; } }
/* Keep project entry points concise: one purpose and one action. */
.project-tile { padding:24px; }
.project-tile p { margin-bottom:24px; }
.tile-top { margin-bottom:18px; }
