:root{color-scheme:dark;--gold:#f4cf55;--muted:#bdc7df;--ink:#f5f6fa;--panel:#10182b}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:#080d18;color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:inherit}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}
.skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--gold);color:#10182b;padding:12px;border-radius:8px}
.skip:focus{top:12px}
.portal-nav{max-width:1160px;margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ffffff18}
.portal-brand{display:flex;align-items:center;gap:10px;font-weight:800;text-decoration:none;letter-spacing:.04em;white-space:nowrap}
.portal-brand img{border-radius:10px}
.portal-links{display:flex;gap:20px;flex-wrap:wrap}.portal-links a{font-size:.9rem;color:var(--muted);text-decoration:none;padding:8px 0}.portal-links a:hover{color:var(--gold)}
.hub{text-align:center;padding:34px 24px 22px;background:radial-gradient(ellipse at 50% 0%,#82632130,transparent 65%)}
.hub .home-logo{display:inline-block;border-radius:24px}.hub .hl{display:block;width:128px;height:128px;object-fit:contain;filter:drop-shadow(0 10px 24px #e8b84a25)}
.eyebrow{color:var(--gold);font-weight:800;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;margin:12px 0 8px}
.hub h1{font-size:clamp(2.3rem,7vw,4rem);line-height:1.1;letter-spacing:-.04em;margin:10px 0 14px}.hub h1 span{color:var(--gold)}
.hub p{max-width:560px;margin:0 auto 24px;color:var(--muted)}
.srch{display:flex;align-items:center;gap:12px;max-width:580px;margin:auto;padding:6px 18px;background:var(--panel);border:1px solid #ffffff35;border-radius:16px;text-align:left}
.srch:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #f4cf5518}
.srch input{width:100%;min-width:0;padding:12px 0;border:0;background:transparent;color:var(--ink);outline:0}.srch input::placeholder{color:#9aa7c0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.tools{max-width:1100px;margin:20px auto 0;display:flex;gap:12px;align-items:center;justify-content:space-between}
.project-count{font-size:.85rem;color:var(--muted);text-align:left}.views{display:flex;gap:6px;flex:none}
.views button{border:1px solid #ffffff30;background:var(--panel);color:var(--muted);border-radius:10px;min-width:44px;min-height:44px;cursor:pointer;font-weight:700}
.views button.on{background:var(--gold);border-color:var(--gold);color:#10182b}
main{max-width:1150px;margin:auto;padding:0 24px 90px}
.feat{display:block;position:relative;min-height:250px;margin:10px 0 36px;border:1px solid #b8933f;border-radius:24px;overflow:hidden;text-decoration:none;background:#17140f}
.feat .fimg{position:absolute;inset:0;background:url('/assets/projects/vm-location/img/hero.webp') center/cover}
.feat:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000e,#0004)}
.feat .ftxt{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:9px;max-width:600px;padding:28px}
.feat .ftxt>.feature-opening{max-width:100%;padding:7px 12px;border-radius:12px;background:var(--gold);color:#10182b;font-size:.88rem;font-weight:800;line-height:1.4}
.feature-logo{width:60px;height:60px;object-fit:contain;border-radius:12px;background:#080d18}
.feat small{color:var(--gold);font-weight:800;letter-spacing:.07em}.feat b{font-size:clamp(1.8rem,6vw,2.5rem);line-height:1.1}.feat .ftxt>span{color:#e0e4eb}
.feat em{font-style:normal;font-weight:800;padding:10px 16px;border-radius:10px;background:var(--gold);color:#10182b;margin-top:4px}
.grp{margin:0 0 28px;border-bottom:1px solid #ffffff20;padding-bottom:24px;scroll-margin-top:24px}
.grp>summary{cursor:pointer;display:flex;align-items:center;gap:12px;padding:12px 0 18px;list-style:none}.grp>summary::-webkit-details-marker{display:none}
.grp>summary span{flex:1;min-width:0}.grp>summary b{display:block;font-size:1.2rem}.grp>summary small{display:block;color:var(--muted);font-size:.85rem;margin-top:4px}
.grp>summary em{font-style:normal;font-size:.8rem;background:#ffffff0c;border:1px solid #ffffff20;padding:3px 10px;border-radius:999px}
.grp>summary:after{content:'+';color:var(--gold);font-size:1.5rem;width:20px;text-align:center}.grp[open]>summary:after{content:'−'}
.apps{display:grid;gap:18px}.apps.big{grid-template-columns:minmax(0,1fr)}
.ap{display:flex;flex-direction:column;min-width:0;border:1px solid #ffffff24;border-radius:18px;overflow:hidden;background:var(--panel);text-decoration:none;transition:transform .18s,border-color .18s}
a.ap:hover{transform:translateY(-4px);border-color:var(--gold)}
.ai{display:block;aspect-ratio:16/9;background-size:cover;background-position:center top;background-color:#0d1321}
.ab{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;padding:16px;flex:1}
.ab img{width:44px;height:44px;border-radius:12px;object-fit:contain;flex:none;background:#080d18}
.ab>span:nth-child(2){flex:1;min-width:0}.ab b{display:block;font-size:1rem;line-height:1.35}.ab small{display:block;font-size:.83rem;color:var(--muted);line-height:1.5;margin-top:5px}
.go{display:block;width:100%;margin-top:auto;padding-top:12px;font-size:.85rem;font-weight:800;color:var(--gold)}
.soon .go{color:var(--muted)}.soon .ai{opacity:.7}
.apps.grid4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.apps.grid4 .ai{aspect-ratio:4/3}.apps.grid4 .ab{padding:12px;gap:8px}.apps.grid4 .ab img{width:32px;height:32px}.apps.grid4 .ab b{font-size:.85rem}.apps.grid4 .ab small{display:none}
.none{padding:30px 16px;text-align:center;color:var(--muted)}
.cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:36px;padding:24px;border:1px solid #f4cf5540;border-radius:18px;background:#171a22}
.cta b{font-size:1.1rem}.cta p{margin:6px 0 0;color:var(--muted)}.btn{display:inline-block;padding:12px 16px;border-radius:10px;background:var(--gold);color:#10182b;font-weight:800;text-decoration:none;overflow-wrap:anywhere;max-width:100%}
.note{color:var(--muted);font-size:.8rem;margin:28px 0 0}.note a{text-underline-offset:3px}
@media(min-width:640px){.apps.big{grid-template-columns:repeat(2,minmax(0,1fr))}.apps.grid4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1024px){.apps.big{grid-template-columns:repeat(3,minmax(0,1fr))}.apps.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:550px){.portal-nav{padding:14px 16px;flex-wrap:wrap;gap:8px}.portal-links{width:100%;justify-content:space-between;gap:8px}.hub{padding:24px 16px 16px}.hub .hl{width:100px;height:100px}.hub p{font-size:.95rem}main{padding:0 16px 90px}.feat .ftxt{padding:22px}.feat{margin-bottom:24px}.cta{padding:18px}.cta .btn{font-size:.85rem}.grp>summary b{font-size:1.08rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ap{transition:none}a.ap:hover{transform:none}}

/* Accès directs aux chaînes, sans lecteur tiers chargé au démarrage. */
.vm-channels{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 18px}
.vm-channel{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:12px;color:#fff!important;font:800 15px/1.3 system-ui,sans-serif;text-decoration:none!important;border:1px solid #ffffff30;transition:filter .15s}
.vm-channel--facebook{background:#1456b8}.vm-channel--instagram{background:linear-gradient(120deg,#ad245a,#6336a3)}.vm-channel--tiktok{background:#171b25}.vm-channel:hover{filter:brightness(1.2)}
.vm-channels a:focus-visible{outline:3px solid #f4cf55;outline-offset:4px}
.pastille-host{font:14px/1.5 system-ui,sans-serif;color:inherit;margin:8px 0;opacity:.85}
.vm-social-more{margin:16px 0!important;padding:12px!important;text-align:left!important}
.vm-social-more summary{cursor:pointer;font:700 14px/1.5 system-ui,sans-serif;min-height:32px;padding:6px}
.vm-social-more .soc-row{margin-top:12px}
.pastille-concept-title{cursor:pointer;font:800 16px/1.5 system-ui,sans-serif;padding:18px}
.episode-page nav{position:sticky;top:0;background:#080d1c;z-index:10;padding-top:12px}
@media(max-width:480px){.vm-channels{gap:8px}.vm-channel{flex:1;padding:10px 12px}.pastille-feed{padding:16px}.vm-social-more .soc-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

.portal-social{margin-top:14px}.portal-social .vm-channels{justify-content:center;margin-top:10px}.hub .portal-social-label{font-size:.82rem;margin-bottom:0}
.portal-nav{position:sticky;top:0;z-index:80;background:#080d18}

/* Annuaire VM : un thème, un projet, un accès direct. */
.portal-brand{gap:12px;letter-spacing:normal}.portal-brand img{width:48px;height:48px;border-radius:14px}
.wordmark{display:flex;flex-direction:column;gap:3px}.wordmark>span{font:500 1.9rem/.95 Georgia,'Times New Roman',serif;letter-spacing:-.06em}.wordmark strong{font-weight:700;background:linear-gradient(145deg,#ffedb5,#e9b53b);color:transparent;background-clip:text;-webkit-background-clip:text}.wordmark i{font-weight:400;font-style:italic;color:#f7f0df}.wordmark small{font:700 .55rem/1.4 system-ui,sans-serif;letter-spacing:.18em;color:#aeb8ce}
.hub{padding-top:28px}.hub .hl{width:88px;height:88px}.hub h1{font-size:clamp(2rem,6vw,3.5rem)}.hub>p{margin-bottom:22px}
.theme-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;max-width:960px;margin:20px auto 0}
.theme-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 13px;border:1px solid #ffffff25;border-radius:12px;background:#10182b;color:#d6dfef;font:700 .85rem/1.3 system-ui,sans-serif;cursor:pointer}
.theme-chip>span{font-size:.72rem;min-width:22px;border-radius:6px;background:#ffffff10;padding:2px 5px}.theme-chip.on{color:#111726;background:var(--gold);border-color:var(--gold)}.theme-chip.on>span{background:#00000012}.theme-chip:hover{border-color:var(--gold)}
.tools{gap:12px;flex-wrap:wrap}.tools .project-count{flex:1}.reset-filters{border:0;background:transparent;color:var(--gold);cursor:pointer;padding:10px 0;font-size:.8rem}
.directory-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:12px 0 22px}.directory-heading h2{margin:0;font-size:clamp(1.45rem,4vw,2rem);letter-spacing:-.035em}.directory-heading .eyebrow{font-size:.65rem;margin-top:0}.directory-heading button{flex:none;border:1px solid #ffffff25;background:#10182b;color:#cbd5ea;min-height:44px;padding:9px 12px;border-radius:10px;font-size:.78rem;cursor:pointer}
.grp{scroll-margin-top:155px}.grp>summary b{font-size:1.15rem}.grp>summary{padding-top:14px}
.apps.big .ap{display:grid;grid-template-columns:84px minmax(0,1fr);min-height:155px}.apps.big .ai{aspect-ratio:auto;min-height:100%;background-position:center;background-color:#0d1321}.apps.big .ab{display:grid;grid-template-columns:30px minmax(0,1fr);align-content:start;align-items:start;gap:9px;padding:14px}.apps.big .ab img{width:30px;height:30px;border-radius:8px}.apps.big .ab>span:nth-child(2){min-width:0}.apps.big .ab b{font-size:.91rem}.apps.big .ab small{font-size:.78rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.apps.big .go{grid-column:1/-1;font-size:.78rem;padding-top:3px}
.feat{min-height:200px;margin-bottom:26px}.feat .ftxt{padding:24px;gap:8px}.feat .feature-logo{width:42px;height:42px}.feat b{font-size:1.8rem}.feat .ftxt>span:not(.feature-opening){font-size:.9rem}.feat em{padding:8px 14px}
.story-teaser{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px;margin:36px 0;border:1px solid #ffffff25;border-radius:20px;background:radial-gradient(ellipse at top right,#84673130,transparent 75%),#10182b}.story-teaser h2{font-size:1.5rem;letter-spacing:-.03em;margin:0 0 8px}.story-teaser p:not(.eyebrow){font-size:.9rem;color:var(--muted);margin:0;max-width:600px}.story-teaser .eyebrow{margin-top:0}.story-teaser .btn{flex:none;font-size:.85rem}
@media(min-width:640px){.apps.big{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.apps.big{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:550px){.portal-nav{gap:14px}.portal-links a{font-size:.8rem;padding:6px 0}.wordmark>span{font-size:1.8rem}.portal-brand img{width:44px;height:44px}.hub .hl{width:76px;height:76px}.theme-filters{gap:7px}.theme-chip{font-size:.77rem;padding:8px 10px;gap:6px}.portal-social{margin-top:20px}.directory-heading{align-items:start}.directory-heading button{font-size:.7rem;max-width:120px;white-space:normal}.directory-heading .eyebrow{font-size:.56rem}.directory-heading h2{font-size:1.35rem}.apps.big .ap{grid-template-columns:88px minmax(0,1fr);min-height:140px}.apps.big .ab small{-webkit-line-clamp:3}.feat .ftxt{padding:20px}.story-teaser{display:block;padding:22px}.story-teaser .btn{margin-top:18px}}

#projets{scroll-margin-top:140px}

/* Entrée professionnelle et annuaire : deux parcours lisibles. */
.portal-links .nav-pro{color:var(--gold);font-weight:800}.hub-pro{text-align:left;padding:0 24px 30px;background:radial-gradient(ellipse at 80% 30%,#82632125,transparent 60%)}
.hub-pro-in{max-width:1102px;margin:auto;padding:52px 0 38px;display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:center}.hub-copy h1{font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.12;margin:14px 0 20px}.hub-copy p{font-size:1rem;max-width:620px;margin:0 0 26px}.hub-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.hub-actions .btn{font-size:.88rem}.hub-secondary{font-size:.88rem;text-underline-offset:5px;padding:10px 0}
.hub-signature{padding:24px;border:1px solid #f4cf5533;border-radius:28px;background:radial-gradient(ellipse at 50% 10%,#86642635,transparent 70%),#0d1420;text-align:center;display:flex;flex-direction:column;align-items:center;gap:15px;text-decoration:none;transform:rotate(1deg)}.hub-signature img{width:150px;height:150px;object-fit:contain}.hub-signature>span{font:italic 1.5rem/1.25 Georgia,serif;color:#f7f0df}.hub-signature small{font-size:.55rem;letter-spacing:.12em;color:var(--gold);margin-top:6px}
.hub-services{max-width:1102px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #ffffff25;border-radius:16px;background:#10182b;overflow:hidden}.hub-services a{padding:20px;text-decoration:none;display:grid;grid-template-columns:26px minmax(0,1fr);gap:5px 8px;align-content:center}.hub-services a+a{border-left:1px solid #ffffff25}.hub-services a:hover{background:#f4cf550b}.hub-services span{font-size:.65rem;color:var(--gold);padding-top:3px}.hub-services b{font-size:.92rem}.hub-services small{grid-column:2;color:var(--muted);font-size:.74rem}
.directory-tools{padding:16px 0 26px;border-bottom:1px solid #ffffff20;margin-bottom:28px}.directory-tools .srch{max-width:680px}.directory-tools .theme-filters{max-width:none}.directory-tools .tools{margin-top:16px}.directory-heading{margin-top:28px}.portal-footer{margin-top:30px;border-top:1px solid #ffffff20;padding-top:20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.portal-footer .portal-social{margin:0}.portal-footer .portal-social-label{font-size:.75rem;color:var(--muted);margin:0 0 8px}.portal-footer .vm-channels{margin:0}.portal-footer .vm-channel{font-size:.8rem;padding:8px 12px;min-height:40px}.portal-footer-project{font-size:.82rem;color:var(--muted);text-underline-offset:4px}
@media(max-width:700px){.hub-pro{padding:0 16px 24px}.hub-pro-in{grid-template-columns:1fr;padding:30px 0 24px;gap:24px}.hub-copy h1{font-size:2.1rem}.hub-copy .eyebrow{font-size:.6rem}.hub-copy p{font-size:.94rem}.hub-signature{display:none}.hub-services{grid-template-columns:1fr}.hub-services a{padding:15px 18px}.hub-services a+a{border-left:0;border-top:1px solid #ffffff20}.hub-services b{font-size:.88rem}.hub-services small{font-size:.72rem}.hub-actions{gap:12px 18px}.directory-tools{padding-top:8px}.portal-links .nav-pro{font-size:.78rem}}
