/* Portfolio Robin Dupeyron — novembre 2026.
   Sans framework, police distante ni styles inline. */
:root{color-scheme:light;--navy:#17334d;--navy2:#102a42;--blue:#155b91;--link:#155b91;--ink:#263748;--muted:#5a6c7b;--line:#d9e3ec;--page:#f4f7fa;--white:#fff;--soft:#edf3f8;--radius:9px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1.5rem}
body{margin:0;background:var(--page);color:var(--ink);font:16px/1.65 system-ui,-apple-system,'Segoe UI',Arial,sans-serif}
a{color:var(--link);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--navy2)}a:focus-visible,button:focus-visible{outline:3px solid #47a9ea;outline-offset:3px}
img{height:auto;max-width:100%;vertical-align:middle}figure{margin:0}figcaption{font-size:.85rem;color:var(--muted);margin-top:.4rem}
h1,h2,h3,h4{color:var(--navy2);line-height:1.3}h1{font-size:clamp(1.9rem,3vw,2.45rem);letter-spacing:-.025em;margin:0 0 .8rem}h2{font-size:1.43rem;margin:2.2rem 0 1rem}h3{font-size:1.1rem;margin:1.1rem 0 .4rem}h4{margin:1rem 0 .3rem}p{margin:.4rem 0 1.1rem}ul,ol{padding-left:1.35rem;margin:.45rem 0 1.1rem}li{margin:.3rem 0}strong{font-weight:650}
.wrap,.content{width:min(1100px,calc(100% - 3rem));margin-inline:auto}.content{min-height:67vh;padding:2.3rem 0 4rem}
.skip-link{position:absolute;top:-7rem;left:1rem;padding:.45rem .7rem;background:var(--white);z-index:99}.skip-link:focus{top:.8rem}
/* En-tête bleu foncé, dans la continuité de la version d'origine. */
.site-header{background:var(--navy);color:var(--white);border-bottom:3px solid #276d9b}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:69px;position:relative}
.brand{color:#fff;text-decoration:none;font-weight:750;font-size:1.13rem;letter-spacing:-.02em}.brand:hover{color:#fff}
.site-nav{display:flex;align-items:center;gap:.2rem}.site-nav a{display:inline-block;color:#e9f3fb;text-decoration:none;padding:.65rem .9rem;border-radius:5px;font-size:.93rem}.site-nav a:hover,.site-nav a[aria-current=page]{background:#2b526f;color:#fff}
.menu-toggle{display:none;border:1px solid #9cb4c8;border-radius:6px;color:#fff;background:transparent;padding:.52rem .65rem;font:inherit;line-height:1;cursor:pointer}
.menu-toggle-label{font-size:.9rem;font-weight:650;margin-right:.6rem}.menu-toggle-icon{display:inline-flex;flex-direction:column;gap:4px;vertical-align:middle}.menu-toggle-icon span{display:block;width:20px;height:2px;background:currentColor}
footer{border-top:1px solid var(--line);background:#eaf0f5;color:#546777;font-size:.89rem;padding:1.3rem 0}footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}footer p{margin:0}footer a{color:#315e7e}
/* Titres, mise en page, éléments communs. */
.intro{margin-bottom:1.2rem}.intro .lead{font-size:1.08rem;line-height:1.7}.intro p{max-width:78ch}
.page-heading{margin-bottom:1.7rem}.page-heading p{max-width:75ch;color:var(--muted)}.page-heading h1{border-bottom:1px solid var(--line);padding-bottom:.6rem}
.home-intro{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:2.4rem;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 2.2rem}
.home-intro .lead{font-size:1.15rem;line-height:1.65}.home-intro figure img{width:235px;aspect-ratio:4/5;object-fit:cover;border-radius:7px;border:1px solid var(--line)}
.home-intro p:last-child{margin-bottom:0}.home-intro figure{justify-self:end}
.note{background:#e6f0f8;border:1px solid #cfdfed;border-left:4px solid var(--blue);border-radius:0 6px 6px 0;padding:.85rem 1.1rem;margin:1.5rem 0 2.2rem}.note p{margin:0}.note strong{color:var(--navy)}
section{min-width:0}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid var(--line);margin:2.4rem 0 1.1rem}.section-head h2{margin:0 0 .6rem}.section-head>a{font-size:.9rem;white-space:nowrap}
/* Cartes simples : bordure, coins modérés, aucune animation ni effet brillant. */
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.project-card{display:flex;flex-direction:column;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:inherit;text-decoration:none}
.project-card:hover{border-color:#93b7d0;color:inherit}.project-card:hover h3{text-decoration:underline}
.project-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--soft);border-bottom:1px solid var(--line)}
.project-card .card-body{padding:1.05rem 1.2rem 1.2rem;flex:1}.project-card h3{color:var(--blue);font-size:1.1rem;margin:0 0 .35rem}.project-card p{color:var(--ink);font-size:.94rem;margin:0}.project-card .meta{color:var(--muted);margin:.6rem 0 0}
.project-card--other{background:#edf4f9}.project-card--other h3{color:var(--navy2)}.other-projects{list-style:none;padding:0;margin:.35rem 0 0}.other-projects li{margin:0;padding:.5rem 0}.other-projects li+li{border-top:1px solid #d3e1ec}.other-projects a{display:block;font-weight:650}.other-projects span{display:block;color:var(--muted);font-size:.87rem}
/* Expériences avec logos réels. */
.experience-list{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.experience{display:grid;grid-template-columns:62px minmax(0,1fr);gap:1.2rem;padding:1.2rem 1.35rem;align-items:start}.experience+.experience{border-top:1px solid var(--line)}.experience>img{width:62px;height:62px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:5px;padding:4px}.experience h3{margin:0 0 .25rem}.experience p{margin:.2rem 0}.experience .meta{font-size:.87rem;color:var(--muted)}
/* Pages projets : liste illustrée, pas de gros bandeau marketing. */
.project-list{list-style:none;padding:0;margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.project-list>li{margin:0;padding:1rem 1.25rem;display:grid;grid-template-columns:130px minmax(0,1fr);gap:1.15rem;align-items:start}
.project-list>li+li{border-top:1px solid var(--line)}.project-list img{width:130px;aspect-ratio:4/3;object-fit:cover;border-radius:5px;border:1px solid var(--line)}
.project-list h3{margin:0 0 .25rem}.project-list p{margin:0;font-size:.96rem}.project-list>li.no-image{grid-template-columns:1fr}
.year-block{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.5rem;margin:1rem 0}.year-block h2{margin:0 0 .5rem}.year-block h3{margin:1.15rem 0 .5rem}
.sae-list{list-style:none;padding:0;margin:.5rem 0}.sae-list li{padding:.65rem 0;display:grid;grid-template-columns:54px minmax(0,1fr);gap:1rem;align-items:center}.sae-list li+li{border-top:1px solid var(--line)}.sae-list img{width:54px;height:54px;object-fit:contain;border:1px solid #e0e7ee;border-radius:5px;background:#fff;padding:3px}.sae-list h3{font-size:1rem;margin:0}.sae-list p{margin:.1rem 0;font-size:.92rem}
.two-col,.skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.two-col>section,.skill-grid>section{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.4rem}.two-col h2,.skill-grid h2{margin:0 0 .5rem}.two-col ul,.skill-grid ul{margin:.3rem 0}
/* Détails des projets et SAÉ : leurs images sont conservées, avec plus de place. */
.detail{max-width:1000px}.detail .back{margin:0 0 1.25rem;font-size:.9rem}.detail>#accueil,.detail>.intro{margin-bottom:1.25rem}
.detail>section:not(#accueil),.detail>article,.detail>.presentation{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.5rem;margin:1.1rem 0}
.detail .presentation{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.85fr);gap:1.4rem;align-items:start}
.detail .presentation:has(.right-panel):not(:has(.description)){display:block}
.detail .presentation h2,.detail>article h2{font-size:1.2rem;margin:.15rem 0 .8rem}
.detail .presentation .right-panel{min-width:0}.detail .right-panel img,.detail .trace img{width:100%;height:auto;max-height:440px;object-fit:contain;border:1px solid var(--line);border-radius:4px;background:#fff}
.detail .trace{margin:.3rem 0 .7rem}.detail .trace h3{font-size:.92rem;color:var(--muted);font-weight:550}.detail .description{min-width:0}.detail .evaluation{font-size:.93rem;color:var(--muted)}
.detail img{max-width:100%}.detail .stars,.detail .espace{display:none}.detail .titrepage{color:var(--muted)}
.detail a:not([href]){color:inherit}.detail .survol{display:block}.detail #accueil h1{margin-bottom:.45rem}
.page-content{margin-top:1rem}.content-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.4rem;margin:1rem 0}.content-card h2{margin:.3rem 0 .65rem}
.button,.text-link,.inline-link{color:var(--blue)}.contact-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin:1rem 0}
.meta,.period,.overline,.eyebrow{font-size:.87rem;color:var(--muted)}.notice{color:var(--muted);font-size:.94rem}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
@media(max-width:760px){
 .wrap,.content{width:calc(100% - 2rem)}.content{padding:1.6rem 0 3rem}
 .site-header .bar{min-height:63px;flex-wrap:wrap;gap:0}.menu-toggle{display:inline-flex;align-items:center}
 .site-nav{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:.15rem 0 .8rem}.site-nav a{display:block;padding:.7rem .8rem}
 /* Sans JS, la navigation reste visible. JS active l'état refermé. */
 .js .site-nav:not(.is-open){display:none}
 .home-intro{grid-template-columns:minmax(0,1fr) 125px;gap:1rem;padding:1.35rem}
 .home-intro figure img{width:125px}.home-intro .lead{font-size:1.02rem}
 .card-grid{grid-template-columns:1fr}.project-card{display:grid;grid-template-columns:140px minmax(0,1fr)}.project-card img{aspect-ratio:4/3;height:100%;border-bottom:0;border-right:1px solid var(--line)}
 .project-card .card-body{padding:.95rem 1rem}
 .section-head{align-items:center}.detail .presentation{grid-template-columns:1fr}
 .two-col,.skill-grid{grid-template-columns:1fr}
}
@media(max-width:470px){body{font-size:15.5px}.home-intro{grid-template-columns:1fr}.home-intro figure{grid-row:1;justify-self:start}.home-intro figure img{width:110px;aspect-ratio:1/1;object-position:center 30%}
 .project-card{display:block}.project-card img{height:auto;aspect-ratio:16/9;border-right:0;border-bottom:1px solid var(--line)}
 .project-list>li{grid-template-columns:90px minmax(0,1fr);gap:.8rem;padding:.9rem}.project-list img{width:90px}.project-list h3{font-size:1rem}
 .experience{grid-template-columns:48px minmax(0,1fr);gap:.9rem;padding:1rem}.experience>img{width:48px;height:48px}
 .year-block,.detail>section:not(#accueil),.detail>article,.detail>.presentation{padding:1rem}.section-head{display:block}.section-head>a{display:inline-block;margin-bottom:.6rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:#fff;color:#000;font:11pt/1.45 Georgia,serif}.site-header,.menu-toggle,footer,.skip-link{display:none}.content{width:100%;padding:0}.home-intro,.year-block,.experience-list,.project-list,.project-card,.detail>article{break-inside:avoid;box-shadow:none;border-color:#bbb}a{color:#000}}

/* Catalogue SAÉ : présentation neutre, aucune carte ou animation supplémentaire. */
.sae-catalog .sae-to-do{display:block;padding-left:0}
.sae-catalog h4{font-size:1rem;line-height:1.4;margin:0;font-weight:650}
.sae-catalog .sae-to-do h4{font-weight:550}
.sae-catalog .meta{margin:.15rem 0 0}
.cv-link{display:inline-block;font-weight:650}
